[mdadm PATCH] reshape checkpointing for IMSM metadata

DQpUaGlzIGlzIGEgY29udGludWF0aW9uIG9mIHRoZSBPTENFIChvbmxpbmUg Y2FwYWNpdHkgZXhw
YW5zaW9uKQ0KcGF0Y2hlcyBzZW50IGJ5IEFkYW0gS3dvbGVrIHNvbWUgdGlt ZSBhZ28sIHNvIHBs
ZWFzZSBhcHBseSB0aGlzIG9uZSBhZnRlciB0aG9zZSBwYXRjaGVzLg0KDQpT dXBwb3J0IGZvciBJ
TVNNIE1pZ3JhdGlvbiBSZWNvcmQgd2FzIGFkZGVkLg0KVGhlIG1pZ3JhdGlv biByZWNvcmQgaXMg
aW5pdGlhbGl6ZWQgd2l0aCBJTVNNIGZhbWlseSBudW1iZXIgd2hlbiBzdGFy dGluZyB0aGUgcmVz
aGFwZS4NCkR1cmluZyB0aGUgYXNzZW1ibHkgb2YgcGFydGlhbGx5IG1pZ3Jh dGVkIGFycmF5IHRo
ZSBtaWdyYXRpb24gcmVjb3JkIGlzIHJlYWQgdG8gcmVjYWxjdWxhdGUgdGhl IHJlc2hhcGUgcGFy
YW1ldGVycy4NCkZvciB0aGUgY29tcGF0aWJpbGl0eSB3aXRoIElNU00gLSB3 aGVuIG1pZ3JhdGlu
ZyByYWlkMCBhcnJheSBpcyBkZXRlY3RlZCBpdCBpcyBzd2l0Y2hlZCB0byBy YWlkNCByZXNoYXBl
LCBzbyBtZG1vbi9tZCBjb3VsZCByZXN0YXJ0IHJlc2hhcGluZyB3aXRoIHJh aWQ1IHBlcnNvbmFs
aXR5Lg0KQ2h1bmsgc2l6ZSBjaGFuZ2VzIGFyZSBub3cgbW9uaXRvcmVkIGZv ciBleHRlcm5hbCBt
ZXRhZGF0YS4NCg0KUmVnYXJkcywNCk1hY2llay4NCg0KLS0tDQogQXNzZW1i bGUuYyAgICB8ICAg
MzcgKysrKysNCiBtYW5hZ2Vtb24uYyAgIHwgICAgMw0KIG1vbml0b3IuYyAg ICAgfCAgIDU3ICsr
KysrLS0tDQogc3VwZXItaW50ZWwuYyB8ICAzOTggKysrKysrKysrKysrKysr KysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tDQogNCBmaWxlcyBjaGFu Z2VkLCA0MjQgaW5z
ZXJ0aW9ucygrKSwgNzEgZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1naXQgYS9B c3NlbWJsZS5jIGIv
QXNzZW1ibGUuYw0KaW5kZXggZDQzOThiNi4uM2QyZGM4MiAxMDA2NDQNCi0t LSBhL0Fzc2VtYmxl
LmMNCisrKyBiL0Fzc2VtYmxlLmMNCkBAIC0xMjc1LDYgKzEyNzUsNyBAQCBp bnQgYXNzZW1ibGVf
Y29udGFpbmVyX2NvbnRlbnQoc3RydWN0IHN1cGVydHlwZSAqc3QsIGludCBt ZGZkLA0KICAgICAg
ICBzdHJ1Y3QgbWRpbmZvICpkZXYsICpzcmE7DQogICAgICAgIGludCB3b3Jr aW5nID0gMCwgcHJl
ZXhpc3QgPSAwOw0KICAgICAgICBzdHJ1Y3QgbWFwX2VudCAqbWFwID0gTlVM TDsNCisgICAgICAg
Y2hhciBidWZbMjBdOw0KDQogICAgICAgIHN5c2ZzX2luaXQoY29udGVudCwg bWRmZCwgMCk7DQoN
CkBAIC0xMjg0LDYgKzEyODUsMTQgQEAgaW50IGFzc2VtYmxlX2NvbnRhaW5l cl9jb250ZW50KHN0
cnVjdCBzdXBlcnR5cGUgKnN0LCBpbnQgbWRmZCwNCiAgICAgICAgICAgICAg ICAgICAgICAgIGNs
b3NlKG1kZmQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7 DQogICAgICAgICAg
ICAgICAgfQ0KKw0KKyAgICAgICBpZiAoY29udGVudC0+cmVzaGFwZV9hY3Rp dmUpIHsNCisgICAg
ICAgICAgICAgICBzeXNmc19zZXRfbnVtKHNyYSwgTlVMTCwgInJlc2hhcGVf cG9zaXRpb24iLCBj
b250ZW50LT5yZXNoYXBlX3Byb2dyZXNzKTsNCisgICAgICAgICAgICAgICBz eXNmc19zZXRfbnVt
KHNyYSwgTlVMTCwgImNodW5rX3NpemUiLCBjb250ZW50LT5uZXdfY2h1bmsp Ow0KKyAgICAgICAg
ICAgICAgIHN5c2ZzX3NldF9udW0oc3JhLCBOVUxMLCAibGF5b3V0IiwgY29u dGVudC0+bmV3X2xh
eW91dCk7DQorICAgICAgICAgICAgICAgc3lzZnNfc2V0X251bShzcmEsIE5V TEwsICJyYWlkX2Rp
c2tzIiwgY29udGVudC0+YXJyYXkucmFpZF9kaXNrcyArIGNvbnRlbnQtPmRl bHRhX2Rpc2tzKTsN
CisgICAgICAgfQ0KKw0KICAgICAgICBpZiAoc3JhKSB7DQogICAgICAgICAg ICAgICAgc3lzZnNf
ZnJlZShzcmEpOw0KICAgICAgICAgICAgICAgIHNyYSA9IE5VTEw7DQpAQCAt MTM0Miw2ICsxMzUx
LDM0IEBAIGludCBhc3NlbWJsZV9jb250YWluZXJfY29udGVudChzdHJ1Y3Qg c3VwZXJ0eXBlICpz
dCwgaW50IG1kZmQsDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICAgIGlmICghZXJy
KQ0KICAgICAgICAgICAgICAgICAgICAgICAgd2FpdF9mb3IoY2hvc2VuX25h bWUsIG1kZmQpOw0K
Kw0KKyAgICAgICAgICAgICAgIHNyYSA9IHN5c2ZzX3JlYWQobWRmZCwgMCwg R0VUX1ZFUlNJT04p
Ow0KKyAgICAgICAgICAgICAgIGlmIChzcmEgPT0gTlVMTCB8fCBzdHJjbXAo c3JhLT50ZXh0X3Zl
cnNpb24sIGNvbnRlbnQtPnRleHRfdmVyc2lvbikgIT0gMCkNCisgICAgICAg ICAgICAgICAgICAg
ICAgIGlmIChzeXNmc19zZXRfYXJyYXkoY29udGVudCwgbWRfZ2V0X3ZlcnNp b24obWRmZCkpICE9
IDApIHsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2Uo bWRmZCk7DQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOw0KKyAgICAg ICAgICAgICAgICAg
ICAgICAgfQ0KKw0KKyAgICAgICAgICAgICAgIGlmIChjb250ZW50LT5yZXNo YXBlX2FjdGl2ZSkg
ew0KKyAgICAgICAgICAgICAgICAgICAgICAgLyogd2FpdCBmb3IgcmVjb25m aWd1cmF0aW9uIGlz
IGJlZWluZyAgc2lnbmFsbGVkIGZyb20gbW9uaXRvciAqLw0KKyAgICAgICAg ICAgICAgICAgICAg
ICAgaW50IHJldHZhbDsNCisgICAgICAgICAgICAgICAgICAgICAgIGxvbmcg c3luY19jb21wbCA9
IC0xOw0KKyAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqZXA7DQorICAg ICAgICAgICAgICAg
ICAgIHsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xlZXAo MSk7DQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHZhbCA9IHN5c2ZzX2dldF9z dHIoc3JhLCBOVUxM
LCAic3luY19jb21wbGV0ZWQiLCBidWYsIDIwKTsNCisgICAgICAgICAgICAg ICAgICAgICAgICAg
ICAgICAgaWYgKHJldHZhbCA+IDApDQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAg
ICAgICAgc3luY19jb21wbCA9IHN0cnRvbChidWYsICZlcCwgMTApOw0KKyAg ICAgICAgICAgICAg
ICAgICB9IHdoaWxlICgoc3luY19jb21wbCAhPSAwKSB8fCAocmV0dmFsIDwg MCkpOw0KKw0KKyAg
ICAgICAgICAgICAgICAgICBzeXNmc19zZXRfc3RyKHNyYSwgTlVMTCwgInN5 bmNfbWF4IiwgIm1h
eCIpOw0KKyAgICAgICAgICAgICAgIH0NCisNCisgICAgICAgICAgICAgICBp ZiAoc3JhKSB7DQor
ICAgICAgICAgICAgICAgICAgICAgICBzeXNmc19mcmVlKHNyYSk7DQorICAg ICAgICAgICAgICAg
ICAgICAgICBzcmEgPSBOVUxMOw0KKyAgICAgICAgICAgICAgIH0NCisNCiAg ICAgICAgICAgICAg
ICBjbG9zZShtZGZkKTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAg ICAgICAgICAgICAg
ICAvKiBGSVhNRSBzaG91bGQgaGF2ZSBhbiBPX0VYQ0wgYW5kIHdhaXQgZm9y IHJlYWQtYXV0byAq
Lw0KZGlmZiAtLWdpdCBhL21hbmFnZW1vbi5jIGIvbWFuYWdlbW9uLmMNCmlu ZGV4IGI0MmEwMGIu
Ljc3NDQ5NDEgMTAwNjQ0DQotLS0gYS9tYW5hZ2Vtb24uYw0KKysrIGIvbWFu YWdlbW9uLmMNCkBA
IC00NTksNyArNDU5LDcgQEAgc3RhdGljIHZvaWQgbWFuYWdlX21lbWJlcihz dHJ1Y3QgbWRzdGF0
X2VudCAqbWRzdGF0LA0KICAgICAgICAgICAgICAgIGNoYXIgc3luY19tYXhf c3RyW1NZTkNfTUFY
X1NUUl9MRU5dOw0KDQogICAgICAgICAgICAgICAgaWYgKHN5c2ZzX2dldF9z dHIoJihhLT5pbmZv
KSwgTlVMTCwic3luY19tYXgiLCBzeW5jX21heF9zdHIsIFNZTkNfTUFYX1NU Ul9MRU4pID4wKSB7
DQotICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHN0cm5jbXAoc3luY19t YXhfc3RyLCAiMCIs
IDEpID09IDApICYmICggYS0+cmVzaGFwZV9kZWx0YV9kaXNrcyA+IDAgKSkg ew0KKyAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKChzdHJuY21wKHN5bmNfbWF4X3N0ciwgIjAi LCAxKSA9PSAwKSAm
JiAoYS0+cmVzaGFwZV9kZWx0YV9kaXNrcyA+IDApKSB7DQogICAgICAgICAg ICAgICAgICAgICAg
ICAgICAgICAgIC8qIHRoaXMgaXMgcmVzaGFwZSAvaG9sZCBvbi8gcGhhc2UN CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICogd2UgYWh2ZSBhZGQgZGV2aWNlIGJl Zm9yZSBhbnkgYWN0
aW9uIHRha2VzIHBsYWNlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAqIHRvIGFs
bG93IG1hbmFnZSBuZXcgZGV2aWNlIGFsc28gYWxvbmcgZW50aXJlIG1hbmFn bWVudCBwcm9jZWR1
cmUNCkBAIC02MDgsNyArNjA4LDYgQEAgc3RhdGljIHZvaWQgbWFuYWdlX21l bWJlcihzdHJ1Y3Qg
bWRzdGF0X2VudCAqbWRzdGF0LA0KICAgICAgICAgICAgICAgIH0NCiAgICAg ICAgICAgICAgICBm
cmVlX3VwZGF0ZXMoJnVwZGF0ZXMpOw0KICAgICAgICB9DQotDQogfQ0KDQog c3RhdGljIGludCBh
YV9yZWFkeShzdHJ1Y3QgYWN0aXZlX2FycmF5ICphYSkNCmRpZmYgLS1naXQg YS9tb25pdG9yLmMg
Yi9tb25pdG9yLmMNCmluZGV4IDc3NDIyMDIuLjJmYTI5ODMgMTAwNjQ0DQot LS0gYS9tb25pdG9y
LmMNCisrKyBiL21vbml0b3IuYw0KQEAgLTEwOSwyOSArMTA5LDMzIEBAIHN0 YXRpYyBpbnQgcmVh
ZF9sZXZlbChpbnQgZmQpDQogICAgICAgIGNoYXIgYnVmWzIwXTsNCiAgICAg ICAgaW50IG4gPSBy
ZWFkX2F0dHIoYnVmLCAyMCwgZmQpOw0KDQorDQogICAgICAgIGlmIChuIDw9 IDApDQogICAgICAg
ICAgICAgICAgcmV0dXJuIC0xOw0KICAgICAgICBpbnQgbGV2ZWwgPSBtYXBf bmFtZShwZXJzLCBi
dWYpOw0KICAgICAgICByZXR1cm4gbGV2ZWw7DQogfQ0KKw0KIHN0YXRpYyB1 bnNpZ25lZCBsb25n
IGxvbmcgcmVhZF9yZXNoYXBlX3Bvc2l0aW9uKCBpbnQgZmQpDQogew0KICAg ICAgICBjaGFyIGJ1
Zls0MF07DQogICAgICAgIGludCBuID0gcmVhZF9hdHRyKGJ1ZiwgNDAsIGZk KTsNCi0gICAgICAg
dW5zaWduZWQgbG9uZyBsb25nIHJldFZhbCA9IDA7DQorICAgICAgIHVuc2ln bmVkIGxvbmcgbG9u
ZyByZXRWYWw7DQorICAgICAgIGNoYXIgKmVwOw0KDQotICAgICAgIGlmIChu IDw9IDApIHsNCi0g
ICAgICAgICAgICAgICAvKiBlcnJvciAtIGRvIG5vdGhpbmcgKi8NCi0gICAg ICAgfSBlbHNlIHsN
Ci0gICAgICAgICAgICAgICAvKiBjaGVjayBpZiByZXNoYXBlIHBvc2l0aW9u IGkgcyBudW1lcmlj
ICovDQotICAgICAgICAgICAgICAgY2hhciAqZXA7DQotDQotICAgICAgICAg ICAgICAgcmV0VmFs
ID0gc3RydG91bGwoYnVmLCAmZXAsIDEwKTsNCi0gICAgICAgICAgICAgICBp ZiAoZXAgPT0gYnVm
IHx8DQotICAgICAgICAgICAgICAgICAgICgoKmVwICE9IDApICYmICgqZXAg IT0gJ1xuJykgJiYg
KCplcCAhPSAnICcpKSkgew0KLSAgICAgICAgICAgICAgICAgICAgICAgLyog ZXJyb3Igc28gd2Ug
aGF2ZSB0byB3YWl0IG1vcmUgKi8NCi0gICAgICAgICAgICAgICAgICAgICAg IHJldFZhbCA9MDsN
Ci0gICAgICAgICAgICAgICB9DQorICAgICAgIC8qIGVycm9yIC0gZG8gbm90 aGluZyAqLw0KKyAg
ICAgICBpZiAobiA8PSAwKQ0KKyAgICAgICAgICAgICAgIHJldHVybiAwOw0K Kw0KKyAgICAgICBp
ZiAoc3RybmNtcChidWYsICJub25lIiwgNCkgPT0gMCkNCisgICAgICAgICAg ICAgICByZXR1cm4g
TWF4U2VjdG9yOw0KKw0KKyAgICAgICAvKiBjaGVjayBpZiByZXNoYXBlIHBv c2l0aW9uIGlzIG51
bWVyaWMgKi8NCisgICAgICAgcmV0VmFsID0gc3RydG91bGwoYnVmLCAmZXAs IDEwKTsNCisgICAg
ICAgaWYgKGVwID09IGJ1ZiB8fA0KKyAgICAgICAgICAgICAgICgoKmVwICE9 IDApICYmICgqZXAg
IT0gJ1xuJykgJiYgKCplcCAhPSAnICcpKSkgew0KKyAgICAgICAgICAgICAg IC8qIGVycm9yIHNv
IHdlIGhhdmUgdG8gd2FpdCBtb3JlICovDQorICAgICAgICAgICAgICAgcmV0 VmFsID0gMDsNCiAg
ICAgICAgfQ0KDQogICAgICAgIHJldHVybiByZXRWYWw7DQpAQCAtMjc5LDcg KzI4Myw3IEBAIHN0
YXRpYyBpbnQgcmVhZF9hbmRfYWN0KHN0cnVjdCBhY3RpdmVfYXJyYXkgKmEp DQoNCiAgICAgICAg
aWYgKGEtPnRha2VvdmVyID09IG5vbmUpIHsNCiAgICAgICAgICAgICAgICAv KiBjaGVjayBmb3Ig
cmFpZCBsZXZlbCBjaGFuZ2UgKi8NCi0gICAgICAgICAgICAgICBpZiAoYS0+ Y3Vycl9sZXZlbCAh
PSBhLT5wcmV2X2xldmVsKSAgICAgew0KKyAgICAgICAgICAgICAgIGlmICgo YS0+Y3Vycl9sZXZl
bCAhPSBhLT5wcmV2X2xldmVsKSAmJiAoYS0+cHJldl9sZXZlbCAhPSAtMSkp IHsNCiAgICAgICAg
ICAgICAgICAgICAgICAgIC8qIHN0YXJ0IHRha2VvdmVyIHByb2NlZHVyZSAq Lw0KICAgICAgICAg
ICAgICAgICAgICAgICAgYS0+dGFrZW92ZXIgPSByZXF1ZXN0ZWQ7DQogICAg ICAgICAgICAgICAg
fQ0KQEAgLTM2Myw4ICszNjcsMTAgQEAgc3RhdGljIGludCByZWFkX2FuZF9h Y3Qoc3RydWN0IGFj
dGl2ZV9hcnJheSAqYSkNCiAgICAgICAgICAgICAgICB9DQogICAgICAgIH0N Cg0KLSNkZWZpbmUg
T0xDRV9TVFJfTEVOICAgICAgICAgICAgICAgICAgIDUwDQotI2RlZmluZSAg UkFJRF9ESVNLU19T
VFJfTEVOICAgICAgICAgICAgNTANCisjZGVmaW5lIE9MQ0VfU1RSX0xFTiAg ICAgICAgNTANCisj
ZGVmaW5lIFJBSURfRElTS1NfU1RSX0xFTiAgNTANCisjZGVmaW5lIENIVU5L X1NJWkVfU1RSX0xF
TiAgNTANCisNCiAgICAgICAgaWYgKCFkZWFjdGl2YXRlKSB7DQogICAgICAg ICAgICAgICAgLyog
bW9uaXRvciByZXNoYXBlIHBvc2l0aW9uICh1cGRhdGUgbWV0YSkNCiAgICAg ICAgICAgICAgICAg
KiBTdGFydCByZXNoYXBlDQpAQCAtMzc1LDIxICszODEsMTggQEAgc3RhdGlj IGludCByZWFkX2Fu
ZF9hY3Qoc3RydWN0IGFjdGl2ZV9hcnJheSAqYSkNCiAgICAgICAgICAgICAg ICAgICAgICAgICAg
ICAgICAgY2FzZSByZXNoYXBlIDogLyogY29udGludWUgcmVzaGFwZSAqLw0K ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAg
ICAgICAgaWYgKGEtPnJlc2hhcGVfcG9zaXRpb24gIT0gcmVzaGFwZV9wb3Np dGlvbikgew0KLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg LyogdXB0ZGF0ZSBt
ZXRhDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKiB3
aGVyZSB1cGRhdGUgcmVzaGFwZSBwb3NpdGlvbiA/IHByb3BhYmx5IGluIG1h bmFnZXIgdG8gaWRl
bnRpZnkgcmVxdWVzdA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAg
ICAgICAgICovDQotDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAg
ICAgICAvKiBhLT5yZXNoYXBlX3Bvc2l0aW9uID0gcmVzaGFwZV9wb3NpdGlv biAqLw0KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyog dXB0ZGF0ZSBtZXRh
ICovDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhLT5j
b250YWluZXItPnNzLT5zZXRfYXJyYXlfc3RhdGUoYSwgMSk7DQorICAgICAg ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhLT5yZXNoYXBlX3Bvc2l0 aW9uID0gcmVzaGFw
ZV9wb3NpdGlvbjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAg
ICAgIHN5c2ZzX3NldF9zdHIoJihhLT5pbmZvKSwgTlVMTCwic3luY19jb21w bGV0ZWQiLCIwIik7
DQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvKiByZXNo
YXBlIGNoZWNrcG9pbnRpbmcgKi8NCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAg
ICAgICAgICAgICAgIC8qIHNlbmRfdG9fbWFuYWdlciA9IDE7ICovDQogICAg ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAg
ICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0K DQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAg ICAgICAgICAgICAg
ICAgICAgIHsNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjaGFyIHJh
aWRfZGlza3Nfc3RyWyBSQUlEX0RJU0tTX1NUUl9MRU4gXTsNCisgICAgICAg ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjaGFyIHJhaWRfZGlza3Nfc3RyW1JBSURf RElTS1NfU1RSX0xF
Tl07DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y2hhciBjaHVua19z
aXplX3N0cltDSFVOS19TSVpFX1NUUl9MRU5dOw0KICAgICAgICAgICAgICAg ICAgICAgICAgICAg
ICAgICAgICAgICAgIC8qIHdlIGFodmUgYWRkIGRldmljZSBiZWZvcmUgYW55 IGFjdGlvbiB0YWtl
cyBwbGFjZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAqIHRvIGFs
bG93IG1hbmFnZSBuZXcgZGV2aWNlIGFsc28gYWxvbmcgZW50aXJlIG1hbmFn bWVudCBwcm9jZWR1
cmUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Kg0KQEAgLTM5OSw2
ICs0MDIsMTIgQEAgc3RhdGljIGludCByZWFkX2FuZF9hY3Qoc3RydWN0IGFj dGl2ZV9hcnJheSAq
YSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KiA0LiB0cmlnZ2Vy
IG1kYWRtIGJ5IHNldHRpbmcgc3luY19jb21wbD0wIGluIHN5c2ZzDQogICAg ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKHN5c2ZzX2dldF9zdHIoJihhLT5pbmZvKSwgTlVM TCwgInJhaWRfZGlz
a3MiLCByYWlkX2Rpc2tzX3N0ciwgUkFJRF9ESVNLU19TVFJfTEVOKSA+MCkg ew0KKw0KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg KHN5c2ZzX2dldF9z
dHIoJihhLT5pbmZvKSwgTlVMTCwgImNodW5rX3NpemUiLCBjaHVua19zaXpl X3N0ciwgUkFJRF9E
SVNLU19TVFJfTEVOKSA+IDApIHsNCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY2hhciAqZW5kUHRyOw0KKyAgICAgICAg ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhLT5pbmZvLm5l d19jaHVuayA9IHN0
cnRvbChjaHVua19zaXplX3N0ciwgJmVuZFB0ciwgMTApOw0KKyAgICAgICAg ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KKw0KICAgICAgICAgICAg ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqc3BhY2VMb2NhdGlvbiA9 IE5VTEw7DQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv KiBnZXQgaXQgaW4g
Zm9ybWF0OiBuZXdfcmFpZF9kaXNrcyAob2xkX3JhaWRfZGlza3MpICovDQog ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGFjZUxvY2F0 aW9uID0gc3RyY2hy
IChyYWlkX2Rpc2tzX3N0ciwgJyAnKTsNCmRpZmYgLS1naXQgYS9zdXBlci1p bnRlbC5jIGIvc3Vw
ZXItaW50ZWwuYw0KaW5kZXggZjZlMjUzOC4uNWVlYjJlMyAxMDA2NDQNCi0t LSBhL3N1cGVyLWlu
dGVsLmMNCisrKyBiL3N1cGVyLWludGVsLmMNCkBAIC0xOTksNiArMTk5LDI2 IEBAIHN0YXRpYyBj
aGFyICptYXBfc3RhdGVfc3RyW10gPSB7ICJub3JtYWwiLCAidW5pbml0aWFs aXplZCIsICJkZWdy
YWRlZCIsICJmYWlsZWQiDQoNCg0KDQorc3RydWN0IE1pZ3JSZWNvcmQgew0K KyAgICAgICBfX3Uz
MiByZWNTdGF0dXM7ICAgICAgICAgICAgLyogU3RhdHVzIHVzZWQgdG8gZGV0 ZXJtaW5lIGhvdyB0
byByZXN0YXJ0DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICogbWlncmF0aW9uIGluIGNhc2UgaXQgYWJv cnRzIGluIHNvbWUg
ZmFzaGlvbiAqLw0KKyAgICAgICBfX3UzMiBjdXJyTWlnclVuaXQ7ICAgICAg ICAgLyogMC4ubnVt
TWlnclVuaXRzLTEgKi8NCisgICAgICAgX191MzIgZmFtaWx5TnVtOyAgICAg ICAgICAgIC8qIEZh
bWlseSBudW1iZXIgb2YgTVBCIGNvbnRhaW5pbmcgdGhlIFJhaWREZXYNCisg ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKiB0aGF0
IGlzIG1pZ3JhdGluZyAqLw0KKyAgICAgICBfX3UzMiBhc2NlbmRpbmdNaWdy OyAgICAgICAgLyog
VHJ1ZSBpZiBtaWdyYXRpbmcgaW4gaW5jcmVhc2luZyBvcmRlciBvZiBsYmFz ICovDQorICAgICAg
IF9fdTMyIGJsb2Nrc1BlclVuaXQ7ICAgICAgICAvKiBOdW0gZGlzayBibG9j a3MgcGVyIHVuaXQg
b2Ygb3BlcmF0aW9uICovDQorICAgICAgIF9fdTMyIGRlc3REZXB0aFBlclVu aXQ7ICAgICAvKiBO
dW0gbWVtYmVyIGJsb2NrcyBlYWNoIGRlc3RNYXAgbWVtYmVyIGRpc2sNCisg ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKiBhZHZh
bmNlcyBwZXIgdW5pdC1vZi1vcGVyYXRpb24gKi8NCisgICAgICAgX191MzIg Y2twdEFyZWFQYmE7
ICAgICAgICAgIC8qIFBiYSBvZiBmaXJzdCBibG9jayBvZiBja3B0IGNvcHkg YXJlYSAqLw0KKyAg
ICAgICBfX3UzMiBkZXN0MXN0TWVtYmVyTGJhOyAgICAgLyogRmlyc3QgbWVt YmVyIGxiYSBvbiBm
aXJzdCBzdHJpcGUgb2YgZGVzdGluYXRpb24gKi8NCisgICAgICAgX191MzIg bnVtTWlnclVuaXRz
OyAgICAgICAgIC8qIFRvdGFsIG51bSBtaWdyYXRpb24gdW5pdHMtb2Ytb3Ag Ki8NCisgICAgICAg
X191MzIgcG9zdE1pZ3JWb2xDYXBhY2l0eTsgIC8qIFNpemUgb2Ygdm9sdW1l IGFmdGVyIG1pZ3Jh
dGlvbiBjb21wbGV0ZXMgKi8NCisgICAgICAgX191MzIgcG9zdE1pZ3JWb2xD YXBhY2l0eUhpOy8q
ICBFeHBhbnNpb24gc3BhY2UgZm9yIExCQTY0ICovDQorICAgICAgIF9fdTMy IGNrcHRSZWFkRGlz
a051bTsgICAgICAvKiBXaGljaCBtZW1iZXIgZGlzayBpbiBkZXN0U3ViTWFw WzBdIHRoZQ0KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAg
ICAgICAqICBtaWdyYXRpb24gY2twdCByZWNvcmQgd2FzIHJlYWQgZnJvbQ0K KyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAqICAo
Zm9yIHJlY292ZXJlZCBtaWdyYXRpb25zKSAqLw0KK307DQorDQogc3RhdGlj IF9fdTggbWlncl90
eXBlKHN0cnVjdCBpbXNtX2RldiAqZGV2KQ0KIHsNCiAgICAgICAgaWYgKGRl di0+dm9sLm1pZ3Jf
dHlwZSA9PSBNSUdSX1ZFUklGWSAmJg0KQEAgLTQ4NCwxNCArNTA0LDI2IEBA IHN0YXRpYyBzdHJ1
Y3QgaW1zbV9kZXYgKmdldF9pbXNtX2RldihzdHJ1Y3QgaW50ZWxfc3VwZXIg KnN1cGVyLCBfX3U4
IGluZGV4KQ0KICAgICAgICByZXR1cm4gTlVMTDsNCiB9DQoNCi1zdGF0aWMg X191MzIgZ2V0X2lt
c21fb3JkX3RibF9lbnQoc3RydWN0IGltc21fZGV2ICpkZXYsIGludCBzbG90 KQ0KKy8qDQorICog
Zm9yIHNlY29uZF9tYXA6DQorICogID09IDAgZ2V0IGZpcnN0IG1hcA0KKyAq ICA9PSAxIGdldCBz
ZWNvbmQgbWFwDQorICogID09IC0xIHRoYW4gZ2V0IG1hcCBhY2NvcmRpbmcg dG8gdGhlIGN1cnJl
bnQgbWlncl9zdGF0ZQ0KKyAqLw0KK3N0YXRpYyBfX3UzMiBnZXRfaW1zbV9v cmRfdGJsX2VudChz
dHJ1Y3QgaW1zbV9kZXYgKmRldiwNCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzbG90LA0KKyAg ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW50IHNl
Y29uZF9tYXApDQogew0KICAgICAgICBzdHJ1Y3QgaW1zbV9tYXAgKm1hcDsN Cg0KLSAgICAgICBp
ZiAoZGV2LT52b2wubWlncl9zdGF0ZSkNCi0gICAgICAgICAgICAgICBtYXAg PSBnZXRfaW1zbV9t
YXAoZGV2LCAxKTsNCi0gICAgICAgZWxzZQ0KLSAgICAgICAgICAgICAgIG1h cCA9IGdldF9pbXNt
X21hcChkZXYsIDApOw0KKyAgICAgICBpZiAoc2Vjb25kX21hcCA9PSAtMSkg ew0KKyAgICAgICAg
ICAgICAgIGlmIChkZXYtPnZvbC5taWdyX3N0YXRlKQ0KKyAgICAgICAgICAg ICAgICAgICAgICAg
bWFwID0gZ2V0X2ltc21fbWFwKGRldiwgMSk7DQorICAgICAgICAgICAgICAg ZWxzZQ0KKyAgICAg
ICAgICAgICAgICAgICAgICAgbWFwID0gZ2V0X2ltc21fbWFwKGRldiwgMCk7 DQorICAgICAgIH0g
ZWxzZSB7DQorICAgICAgICAgICAgICAgbWFwID0gZ2V0X2ltc21fbWFwKGRl diwgc2Vjb25kX21h
cCk7DQorICAgICAgIH0NCg0KICAgICAgICAvKiB0b3AgYnl0ZSBpZGVudGlm aWVzIGRpc2sgdW5k
ZXIgcmVidWlsZCAqLw0KICAgICAgICByZXR1cm4gX19sZTMyX3RvX2NwdSht YXAtPmRpc2tfb3Jk
X3RibFtzbG90XSk7DQpAQCAtNDk5LDkgKzUzMSw5IEBAIHN0YXRpYyBfX3Uz MiBnZXRfaW1zbV9v
cmRfdGJsX2VudChzdHJ1Y3QgaW1zbV9kZXYgKmRldiwgaW50IHNsb3QpDQoN CiAjZGVmaW5lIG9y
ZF90b19pZHgob3JkKSAoKChvcmQpIDw8IDgpID4+IDgpDQogI2RlZmluZSBn ZXRfb3JkX2ZsYWdz
KG9yZCkgKCgob3JkKSA+PiA4KSA8PCA4KQ0KLXN0YXRpYyBfX3UzMiBnZXRf aW1zbV9kaXNrX2lk
eChzdHJ1Y3QgaW1zbV9kZXYgKmRldiwgaW50IHNsb3QpDQorc3RhdGljIF9f dTMyIGdldF9pbXNt
X2Rpc2tfaWR4KHN0cnVjdCBpbXNtX2RldiAqZGV2LCBpbnQgc2xvdCwgaW50 IHNlY29uZF9tYXAp
DQogew0KLSAgICAgICBfX3UzMiBvcmQgPSBnZXRfaW1zbV9vcmRfdGJsX2Vu dChkZXYsIHNsb3Qp
Ow0KKyAgICAgICBfX3UzMiBvcmQgPSBnZXRfaW1zbV9vcmRfdGJsX2VudChk ZXYsIHNsb3QsIHNl
Y29uZF9tYXApOw0KDQogICAgICAgIHJldHVybiBvcmRfdG9faWR4KG9yZCk7 DQogfQ0KQEAgLTY5
MSw3ICs3MjMsNyBAQCBzdGF0aWMgdm9pZCBwcmludF9pbXNtX2RldihzdHJ1 Y3QgaW1zbV9kZXYg
KmRldiwgY2hhciAqdXVpZCwgaW50IGRpc2tfaWR4KQ0KICAgICAgICBwcmlu dGYoIiAgICAgICAg
TWVtYmVycyA6ICVkXG4iLCBtYXAtPm51bV9tZW1iZXJzKTsNCiAgICAgICAg c2xvdCA9IGdldF9p
bXNtX2Rpc2tfc2xvdChtYXAsIGRpc2tfaWR4KTsNCiAgICAgICAgaWYgKHNs b3QgPj0gMCkgew0K
LSAgICAgICAgICAgICAgIG9yZCA9IGdldF9pbXNtX29yZF90YmxfZW50KGRl diwgc2xvdCk7DQor
ICAgICAgICAgICAgICAgb3JkID0gZ2V0X2ltc21fb3JkX3RibF9lbnQoZGV2 LCBzbG90LCAtMSk7
DQogICAgICAgICAgICAgICAgcHJpbnRmKCIgICAgICBUaGlzIFNsb3QgOiAl ZCVzXG4iLCBzbG90
LA0KICAgICAgICAgICAgICAgICAgICAgICBvcmQgJiBJTVNNX09SRF9SRUJV SUxEID8gIiAob3V0
LW9mLXN5bmMpIiA6ICIiKTsNCiAgICAgICAgfSBlbHNlDQpAQCAtMTM0MSwx MiArMTM3MywxMiBA
QCBzdGF0aWMgX191MzIgbnVtX3N0cmlwZXNfcGVyX3VuaXRfcmVidWlsZChz dHJ1Y3QgaW1zbV9k
ZXYgKmRldikNCiAgICAgICAgICAgICAgICByZXR1cm4gbnVtX3N0cmlwZXNf cGVyX3VuaXRfcmVz
eW5jKGRldik7DQogfQ0KDQotc3RhdGljIF9fdTggaW1zbV9udW1fZGF0YV9t ZW1iZXJzKHN0cnVj
dCBpbXNtX2RldiAqZGV2KQ0KK3N0YXRpYyBfX3U4IGltc21fbnVtX2RhdGFf bWVtYmVycyhzdHJ1
Y3QgaW1zbV9kZXYgKmRldiwgaW50IHNlY29uZF9tYXApDQogew0KICAgICAg ICAvKiBuYW1lZCAn
aW1zbV8nIGJlY2F1c2UgcmFpZDAsIHJhaWQxIGFuZCByYWlkMTANCiAgICAg ICAgICogY291bnRl
ci1pbnR1aXRpdmVseSBoYXZlIHRoZSBzYW1lIG51bWJlciBvZiBkYXRhIGRp c2tzDQogICAgICAg
ICAqLw0KLSAgICAgICBzdHJ1Y3QgaW1zbV9tYXAgKm1hcCA9IGdldF9pbXNt X21hcChkZXYsIDAp
Ow0KKyAgICAgICBzdHJ1Y3QgaW1zbV9tYXAgKm1hcCA9IGdldF9pbXNtX21h cChkZXYsIHNlY29u
ZF9tYXApOw0KDQogICAgICAgIHN3aXRjaCAoZ2V0X2ltc21fcmFpZF9sZXZl bChtYXApKSB7DQog
ICAgICAgIGNhc2UgMDoNCkBAIC0xNDI5LDcgKzE0NjEsNyBAQCBzdGF0aWMg X191NjQgYmxvY2tz
X3Blcl9taWdyX3VuaXQoc3RydWN0IGltc21fZGV2ICpkZXYpDQogICAgICAg ICAgICAgICAgICov
DQogICAgICAgICAgICAgICAgc3RyaXBlc19wZXJfdW5pdCA9IG51bV9zdHJp cGVzX3Blcl91bml0
X3Jlc3luYyhkZXYpOw0KICAgICAgICAgICAgICAgIG1pZ3JfY2h1bmsgPSBt aWdyX3N0cmlwX2Js
b2Nrc19yZXN5bmMoZGV2KTsNCi0gICAgICAgICAgICAgICBkaXNrcyA9IGlt c21fbnVtX2RhdGFf
bWVtYmVycyhkZXYpOw0KKyAgICAgICAgICAgICAgIGRpc2tzID0gaW1zbV9u dW1fZGF0YV9tZW1i
ZXJzKGRldiwgMCk7DQogICAgICAgICAgICAgICAgYmxvY2tzX3Blcl91bml0 ID0gc3RyaXBlc19w
ZXJfdW5pdCAqIG1pZ3JfY2h1bmsgKiBkaXNrczsNCiAgICAgICAgICAgICAg ICBzdHJpcGUgPSBf
X2xlMzJfdG9fY3B1KG1hcC0+YmxvY2tzX3Blcl9zdHJpcCkgKiBkaXNrczsN CiAgICAgICAgICAg
ICAgICBzZWdtZW50ID0gYmxvY2tzX3Blcl91bml0IC8gc3RyaXBlOw0KQEAg LTE0NjksNiArMTUw
MSw4NiBAQCBzdGF0aWMgaW50IGltc21fbGV2ZWxfdG9fbGF5b3V0KGludCBs ZXZlbCkNCiAgICAg
ICAgcmV0dXJuIFVuU2V0Ow0KIH0NCg0KKy8qDQorICogbG9hZF9pbXNtX21p Z3JfcmVjIC0gcmVh
ZCBpbXNtIG1pZ3JhdGlvbiByZWNvcmQNCisgKi8NCitzdGF0aWMgaW50IGxv YWRfaW1zbV9taWdy
X3JlYyhpbnQgZmQsIHN0cnVjdCBNaWdyUmVjb3JkICpyZWMsIGNoYXIgKmRl dm5hbWUpDQorew0K
KyAgICAgICBzdHJ1Y3QgTWlnclJlY29yZCAqcmVhZF9idWY7DQorICAgICAg IHVuc2lnbmVkIGxv
bmcgbG9uZyBkc2l6ZTsNCisNCisgICAgICAgZ2V0X2Rldl9zaXplKGZkLCBO VUxMLCAmZHNpemUp
Ow0KKw0KKyAgICAgICBpZiAocG9zaXhfbWVtYWxpZ24oKHZvaWQgKiopJnJl YWRfYnVmLCA1MTIs
IDUxMikgIT0gMCkgew0KKyAgICAgICAgICAgICAgIGlmIChkZXZuYW1lKQ0K KyAgICAgICAgICAg
ICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsDQorICAgICAgICAgICAgICAg ICAgICAgICAgICAg
ICAgIE5hbWUgIjogRmFpbGVkIHRvIGFsbG9jYXRlIGltc20gYW5jaG9yIGJ1 ZmZlciINCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBvbiAlc1xuIiwgZGV2bmFt ZSk7DQorICAgICAg
ICAgICAgICAgcmV0dXJuIDE7DQorICAgICAgIH0NCisNCisNCisgICAgICAg aWYgKGxzZWVrNjQo
ZmQsIGRzaXplIC0gNTEyLCBTRUVLX1NFVCkgPCAwKSB7DQorICAgICAgICAg ICAgICAgaWYgKGRl
dm5hbWUpDQorICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVy ciwNCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAiOiBDYW5ub3Qgc2VlayB0 byBhbmNob3IgYmxv
Y2sgb24gJXM6ICVzXG4iLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkZXZuYW1l
LCBzdHJlcnJvcihlcnJubykpOw0KKyAgICAgICAgICAgICAgIHJldHVybiAx Ow0KKyAgICAgICB9
DQorDQorICAgICAgIGlmIChyZWFkKGZkLCByZWFkX2J1ZiwgNTEyKSAhPSA1 MTIpIHsNCisgICAg
ICAgICAgICAgICBpZiAoZGV2bmFtZSkNCisgICAgICAgICAgICAgICAgICAg ICAgIGZwcmludGYo
c3RkZXJyLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1l ICI6IENhbm5vdCBy
ZWFkIG1pZ3IgcmVjb3JkIGJsb2NrIG9uICVzOiAlc1xuIiwNCisgICAgICAg ICAgICAgICAgICAg
ICAgICAgICAgICAgZGV2bmFtZSwgc3RyZXJyb3IoZXJybm8pKTsNCisgICAg ICAgICAgICAgICBy
ZXR1cm4gMTsNCisgICAgICAgfQ0KKw0KKyAgICAgICBtZW1jcHkocmVjLCBy ZWFkX2J1Ziwgc2l6
ZW9mKCpyZWMpKTsNCisgICAgICAgZnJlZShyZWFkX2J1Zik7DQorICAgICAg IHJldHVybiAwOw0K
K30NCisNCisvKg0KKyAqIHdyaXRlX2ltc21fbWlncl9yZWMgLSB3cml0ZSBp bXNtIG1pZ3JhdGlv
biByZWNvcmQNCisgKi8NCitzdGF0aWMgaW50IHdyaXRlX2ltc21fbWlncl9y ZWMoaW50IGZkLCBz
dHJ1Y3QgTWlnclJlY29yZCAqcmVjLCBjaGFyICpkZXZuYW1lKQ0KK3sNCisg ICAgICAgc3RydWN0
IE1pZ3JSZWNvcmQgKndyaXRlX2J1ZjsNCisgICAgICAgdW5zaWduZWQgbG9u ZyBsb25nIGRzaXpl
Ow0KKw0KKyAgICAgICBnZXRfZGV2X3NpemUoZmQsIE5VTEwsICZkc2l6ZSk7 DQorDQorICAgICAg
IGlmIChwb3NpeF9tZW1hbGlnbigodm9pZCAqKikmd3JpdGVfYnVmLCA1MTIs IDUxMikgIT0gMCkg
ew0KKyAgICAgICAgICAgICAgIGlmIChkZXZuYW1lKQ0KKyAgICAgICAgICAg ICAgICAgICAgICAg
ZnByaW50ZihzdGRlcnIsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE5hbWUgIjog
RmFpbGVkIHRvIGFsbG9jYXRlIGltc20gYW5jaG9yIGJ1ZmZlciINCisgICAg ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIiBvbiAlc1xuIiwgZGV2bmFtZSk7DQorICAgICAg ICAgICAgICAgcmV0
dXJuIDE7DQorICAgICAgIH0NCisNCisgICAgICAgaWYgKGxzZWVrNjQoZmQs IGRzaXplIC0gNTEy
LCBTRUVLX1NFVCkgPCAwKSB7DQorICAgICAgICAgICAgICAgaWYgKGRldm5h bWUpDQorICAgICAg
ICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwNCisgICAgICAgICAg ICAgICAgICAgICAg
ICAgICAgICAgTmFtZSAiOiBDYW5ub3Qgc2VlayB0byBhbmNob3IgYmxvY2sg b24gJXM6ICVzXG4i
LA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXZuYW1lLCBz dHJlcnJvcihlcnJu
bykpOw0KKyAgICAgICAgICAgICAgIHJldHVybiAxOw0KKyAgICAgICB9DQor DQorICAgICAgIG1l
bWNweSh3cml0ZV9idWYsIHJlYywgc2l6ZW9mKCpyZWMpKTsNCisNCisgICAg ICAgZnByaW50Zihz
dGRlcnIsICJ3cml0aW5nIG1pZ3JfcmVjIGF0OiAlbGx1XG4iLCBkc2l6ZS01 MTIpOw0KKyAgICAg
ICBpZiAod3JpdGUoZmQsIHdyaXRlX2J1ZiwgNTEyKSAhPSA1MTIpIHsNCisg ICAgICAgICAgICAg
ICBpZiAoZGV2bmFtZSkNCisgICAgICAgICAgICAgICAgICAgICAgIGZwcmlu dGYoc3RkZXJyLA0K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lICI6IENhbm5v dCB3cml0ZSBtaWdy
IHJlY29yZCBibG9jayBvbiAlczogJXNcbiIsDQorICAgICAgICAgICAgICAg ICAgICAgICAgICAg
ICAgIGRldm5hbWUsIHN0cmVycm9yKGVycm5vKSk7DQorICAgICAgICAgICAg ICAgcmV0dXJuIDE7
DQorICAgICAgIH0NCisgICAgICAgZnJlZSh3cml0ZV9idWYpOw0KKyAgICAg ICByZXR1cm4gMDsN
Cit9DQorDQogc3RhdGljIHZvaWQgZ2V0aW5mb19zdXBlcl9pbXNtX3ZvbHVt ZShzdHJ1Y3Qgc3Vw
ZXJ0eXBlICpzdCwgc3RydWN0IG1kaW5mbyAqaW5mbykNCiB7DQogICAgICAg IHN0cnVjdCBpbnRl
bF9zdXBlciAqc3VwZXIgPSBzdC0+c2I7DQpAQCAtMTQ3Niw2ICsxNTg4LDgg QEAgc3RhdGljIHZv
aWQgZ2V0aW5mb19zdXBlcl9pbXNtX3ZvbHVtZShzdHJ1Y3Qgc3VwZXJ0eXBl ICpzdCwgc3RydWN0
IG1kaW5mbyAqaW5mbykNCiAgICAgICAgc3RydWN0IGltc21fbWFwICptYXAg PSBnZXRfaW1zbV9t
YXAoZGV2LCAwKTsNCiAgICAgICAgc3RydWN0IGRsICpkbDsNCiAgICAgICAg Y2hhciAqZGV2bmFt
ZTsNCisgICAgICAgX191MzIgYmxvY2tzX3Blcl9tZW1iZXI7DQorICAgICAg IF9fdTMyIGJsb2Nr
c19wZXJfc3RyaXA7DQoNCiAgICAgICAgZm9yIChkbCA9IHN1cGVyLT5kaXNr czsgZGw7IGRsID0g
ZGwtPm5leHQpDQogICAgICAgICAgICAgICAgaWYgKGRsLT5yYWlkZGlzayA9 PSBpbmZvLT5kaXNr
LnJhaWRfZGlzaykNCkBAIC0xNDgzLDcgKzE1OTcsMTMgQEAgc3RhdGljIHZv aWQgZ2V0aW5mb19z
dXBlcl9pbXNtX3ZvbHVtZShzdHJ1Y3Qgc3VwZXJ0eXBlICpzdCwgc3RydWN0 IG1kaW5mbyAqaW5m
bykNCiAgICAgICAgaW5mby0+Y29udGFpbmVyX21lbWJlciAgICA9IHN1cGVy LT5jdXJyZW50X3Zv
bDsNCiAgICAgICAgaW5mby0+YXJyYXkucmFpZF9kaXNrcyAgICA9IG1hcC0+ bnVtX21lbWJlcnM7
DQogICAgICAgIGluZm8tPmFycmF5LmxldmVsICAgICAgICAgPSBnZXRfaW1z bV9yYWlkX2xldmVs
KG1hcCk7DQotICAgICAgIGluZm8tPmFycmF5LmxheW91dCAgICAgICAgPSBp bXNtX2xldmVsX3Rv
X2xheW91dChpbmZvLT5hcnJheS5sZXZlbCk7DQorICAgICAgIGlmIChpbmZv LT5hcnJheS5sZXZl
bCA9PSA0KSB7DQorICAgICAgICAgICAgICAgbWFwLT5yYWlkX2xldmVsID0g NTsNCisgICAgICAg
ICAgICAgICBpbmZvLT5hcnJheS5sZXZlbCA9IDU7DQorICAgICAgICAgICAg ICAgaW5mby0+YXJy
YXkubGF5b3V0ID0gQUxHT1JJVEhNX1BBUklUWV9OOw0KKyAgICAgICB9IGVs c2Ugew0KKyAgICAg
ICAgICAgICAgIGluZm8tPmFycmF5LmxheW91dCAgICAgICAgPSBpbXNtX2xl dmVsX3RvX2xheW91
dChpbmZvLT5hcnJheS5sZXZlbCk7DQorICAgICAgIH0NCiAgICAgICAgaW5m by0+YXJyYXkubWRf
bWlub3IgICAgICA9IC0xOw0KICAgICAgICBpbmZvLT5hcnJheS5jdGltZSAg ICAgICAgID0gMDsN
CiAgICAgICAgaW5mby0+YXJyYXkudXRpbWUgICAgICAgICA9IDA7DQpAQCAt MTUwMSw3ICsxNjIx
LDE1IEBAIHN0YXRpYyB2b2lkIGdldGluZm9fc3VwZXJfaW1zbV92b2x1bWUo c3RydWN0IHN1cGVy
dHlwZSAqc3QsIHN0cnVjdCBtZGluZm8gKmluZm8pDQogICAgICAgIH0NCg0K ICAgICAgICBpbmZv
LT5kYXRhX29mZnNldCAgICAgICAgID0gX19sZTMyX3RvX2NwdShtYXAtPnBi YV9vZl9sYmEwKTsN
Ci0gICAgICAgaW5mby0+Y29tcG9uZW50X3NpemUgICAgICA9IF9fbGUzMl90 b19jcHUobWFwLT5i
bG9ja3NfcGVyX21lbWJlcik7DQorICAgICAgIC8qIEZJWE1FOiBGb3Igc29t ZSB1bmtub3duIHJl
YXNvbiBzb21ldGltZXMgaW4gYSB2b2x1bWUgY3JlYXRlZCBieQ0KKyAgICAg ICAgKiBJTVNNIGJs
b2Nrc19wZXJfbWVtYmVyIGlzIG5vdCBhIG11bHRpcGxlIG9mIGJsb2Nrc19w ZXIgc3RyaXAuDQor
ICAgICAgICAqIEZpeCBibG9ja3NfcGVyX21lbWJlciBoZXJlOg0KKyAgICAg ICAgKi8NCisgICAg
ICAgYmxvY2tzX3Blcl9tZW1iZXIgPSBfX2xlMzJfdG9fY3B1KG1hcC0+Ymxv Y2tzX3Blcl9tZW1i
ZXIpOw0KKyAgICAgICBibG9ja3NfcGVyX3N0cmlwID0gX19sZTE2X3RvX2Nw dShtYXAtPmJsb2Nr
c19wZXJfc3RyaXApOw0KKyAgICAgICBibG9ja3NfcGVyX21lbWJlciAmPSB+ KGJsb2Nrc19wZXJf
c3RyaXAgLSAxKTsNCisgICAgICAgaW5mby0+Y29tcG9uZW50X3NpemUgPSBi bG9ja3NfcGVyX21l
bWJlcjsNCisNCiAgICAgICAgbWVtc2V0KGluZm8tPnV1aWQsIDAsIHNpemVv ZihpbmZvLT51dWlk
KSk7DQoNCiAgICAgICAgaWYgKG1hcC0+bWFwX3N0YXRlID09IElNU01fVF9T VEFURV9VTklOSVRJ
QUxJWkVEIHx8IGRldi0+dm9sLmRpcnR5KSB7DQpAQCAtMTUyMyw5ICsxNjUx LDY0IEBAIHN0YXRp
YyB2b2lkIGdldGluZm9fc3VwZXJfaW1zbV92b2x1bWUoc3RydWN0IHN1cGVy dHlwZSAqc3QsIHN0
cnVjdCBtZGluZm8gKmluZm8pDQogICAgICAgICAgICAgICAgICAgICAgICAg Ki8NCiAgICAgICAg
ICAgICAgICBjYXNlIE1JR1JfUkVCVUlMRDoNCiAgICAgICAgICAgICAgICAg ICAgICAgIC8qIHRo
aXMgaXMgaGFuZGxlZCBieSBjb250YWluZXJfY29udGVudF9pbXNtKCkgKi8N Ci0gICAgICAgICAg
ICAgICBjYXNlIE1JR1JfR0VOX01JR1I6DQorICAgICAgICAgICAgICAgY2Fz ZSBNSUdSX0dFTl9N
SUdSOiB7DQorICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaW1zbV9t YXAgKnByZXZfbWFw
Ow0KKyAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IE1pZ3JSZWNvcmQg bWlnclJlYzsNCisg
ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkbCAqZGw7DQorICAgICAg ICAgICAgICAgICAg
ICAgICBjaGFyIG5tWzIwXTsNCisgICAgICAgICAgICAgICAgICAgICAgIGlu dCBkZmQ7DQorICAg
ICAgICAgICAgICAgICAgICAgICBpbnQgZGF0YV9tZW1iZXJzOw0KKw0KKyAg ICAgICAgICAgICAg
ICAgICAgICAgLyogUmVhZCBtaWdyYXRpb24gcmVjb3JkIGZyb20gb25lIG9m IHRoZSBmaXJzdCB0
d28gZGlza3MgKi8NCisgICAgICAgICAgICAgICAgICAgICAgIGZvciAoZGwg PSBzdXBlci0+ZGlz
a3M7IGRsOyBkbCA9IGRsLT5uZXh0KSB7DQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAg
IGlmIChkbC0+aW5kZXggPiAxKQ0KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOw0KKw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzcHJpbnRm
KG5tLCAiJWQ6JWQiLCBkbC0+bWFqb3IsIGRsLT5taW5vcik7DQorICAgICAg ICAgICAgICAgICAg
ICAgICAgICAgICAgIGRmZCA9IGRldl9vcGVuKG5tLCBPX1JET05MWSk7DQor ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChkZmQgPCAwKQ0KKyAgICAgICAgICAg ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAg
ICBpZiAobG9hZF9pbXNtX21pZ3JfcmVjKGRmZCwgJm1pZ3JSZWMsIGRsLT5k ZXZuYW1lKSkNCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsN CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY2xvc2UoZGZkKTsNCisgICAgICAgICAg ICAgICAgICAgICAg
IH0NCisNCisgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaWdyUmVjLmN1 cnJNaWdyVW5pdCA9
PSAwKQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmZvLT5y ZXNoYXBlX3Byb2dy
ZXNzID0gMDsNCisgICAgICAgICAgICAgICAgICAgICAgIGVsc2UNCisgICAg ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW5mby0+cmVzaGFwZV9wcm9ncmVzcyA9DQorICAg ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHVuc2lnbmVkIGxvbmcgbG9uZyko bWlnclJlYy5jdXJy
TWlnclVuaXQgLSAxKQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICog
bWlnclJlYy5ibG9ja3NQZXJVbml0Ow0KKw0KKyAgICAgICAgICAgICAgICAg ICAgICAgLyogc2V0
IHByZXZpb3VzIGFuZCBuZXcgbWFwIGNvbmZpZ3VyYXRpb25zICovDQorICAg ICAgICAgICAgICAg
ICAgICAgICBwcmV2X21hcCA9IGdldF9pbXNtX21hcChkZXYsIDEpOw0KKyAg ICAgICAgICAgICAg
ICAgICAgICAgaW5mby0+cmVzaGFwZV9hY3RpdmUgPSAxOw0KKyAgICAgICAg ICAgICAgICAgICAg
ICAgaW5mby0+YXJyYXkucmFpZF9kaXNrcyA9IHByZXZfbWFwLT5udW1fbWVt YmVyczsNCisgICAg
ICAgICAgICAgICAgICAgICAgIGluZm8tPmRlbHRhX2Rpc2tzID0gbWFwLT5u dW1fbWVtYmVycyAt
IHByZXZfbWFwLT5udW1fbWVtYmVyczsNCisgICAgICAgICAgICAgICAgICAg ICAgIGluZm8tPm5l
d19sZXZlbCA9IGluZm8tPmFycmF5LmxldmVsOw0KKyAgICAgICAgICAgICAg ICAgICAgICAgaW5m
by0+YXJyYXkubGV2ZWwgPSBnZXRfaW1zbV9yYWlkX2xldmVsKHByZXZfbWFw KTsNCisgICAgICAg
ICAgICAgICAgICAgICAgIGluZm8tPm5ld19sYXlvdXQgPSBpbmZvLT5hcnJh eS5sYXlvdXQ7DQor
ICAgICAgICAgICAgICAgICAgICAgICBpbmZvLT5hcnJheS5sYXlvdXQgPSBp bXNtX2xldmVsX3Rv
X2xheW91dChpbmZvLT5hcnJheS5sZXZlbCk7DQorICAgICAgICAgICAgICAg ICAgICAgICBpbmZv
LT5hcnJheS5jaHVua19zaXplID0gX19sZTE2X3RvX2NwdShwcmV2X21hcC0+ YmxvY2tzX3Blcl9z
dHJpcCkgPDwgOTsNCisgICAgICAgICAgICAgICAgICAgICAgIGluZm8tPm5l d19jaHVuayA9IF9f
bGUxNl90b19jcHUobWFwLT5ibG9ja3NfcGVyX3N0cmlwKSA8PCA5Ow0KKw0K KyAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKGluZm8tPmFycmF5LmxldmVsID09IDQpIHsNCisg ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcHJldl9tYXAtPnJhaWRfbGV2ZWwgPSA1Ow0K KyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbmZvLT5hcnJheS5sZXZlbCA9IDU7DQor ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluZm8tPmFycmF5LmxheW91dCA9IEFMR09S SVRITV9QQVJJVFlf
TjsNCisgICAgICAgICAgICAgICAgICAgICAgIH0NCisNCisgICAgICAgICAg ICAgICAgICAgICAg
IC8qIElNU00gRklYIGZvciBibG9ja3NfcGVyX21lbWJlciAqLw0KKyAgICAg ICAgICAgICAgICAg
ICAgICAgYmxvY2tzX3Blcl9zdHJpcCA9IF9fbGUxNl90b19jcHUocHJldl9t YXAtPmJsb2Nrc19w
ZXJfc3RyaXApOw0KKyAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tzX3Bl cl9tZW1iZXIgJj0g
fihibG9ja3NfcGVyX3N0cmlwIC0gMSk7DQorICAgICAgICAgICAgICAgICAg ICAgICBpbmZvLT5j
b21wb25lbnRfc2l6ZSA9IGJsb2Nrc19wZXJfbWVtYmVyOw0KKw0KKyAgICAg ICAgICAgICAgICAg
ICAgICAgLyogQ2FsY3VsYXRlIHByZXZpb3VzIGFycmF5IHNpemUgKi8NCisg ICAgICAgICAgICAg
ICAgICAgICAgIGRhdGFfbWVtYmVycyA9IGltc21fbnVtX2RhdGFfbWVtYmVy cyhkZXYsIDEpOw0K
KyAgICAgICAgICAgICAgICAgICAgICAgaW5mby0+Y3VzdG9tX2FycmF5X3Np emUgPSBibG9ja3Nf
cGVyX21lbWJlciAqIGRhdGFfbWVtYmVyczsNCisgICAgICAgICAgICAgICB9 DQogICAgICAgICAg
ICAgICAgY2FzZSBNSUdSX1NUQVRFX0NIQU5HRToNCi0gICAgICAgICAgICAg ICAgICAgICAgIC8q
IEZJWE1FIGhhbmRsZSBvdGhlciBtaWdyYXRpb25zICovDQorICAgICAgICAg ICAgICAgICAvKiBG
SVhNRSBoYW5kbGUgb3RoZXIgbWlncmF0aW9ucyAqLw0KICAgICAgICAgICAg ICAgIGRlZmF1bHQ6
DQogICAgICAgICAgICAgICAgICAgICAgICAvKiB3ZSBhcmUgbm90IGRpcnR5 LCBzby4uLiAqLw0K
ICAgICAgICAgICAgICAgICAgICAgICAgaW5mby0+cmVzeW5jX3N0YXJ0ID0g TWF4U2VjdG9yOw0K
QEAgLTIwOTMsMTEgKzIyNzYsMTYgQEAgbG9hZF9pbXNtX2Rpc2soaW50IGZk LCBzdHJ1Y3QgaW50
ZWxfc3VwZXIgKnN1cGVyLCBjaGFyICpkZXZuYW1lLCBpbnQga2VlcF9mZCkN CiAgKiAgICBtYXAx
c3RhdGU9bm9ybWFsKQ0KICAqIDQvIFJlYnVpbGQgKG1pZ3Jfc3RhdGU9MSBt aWdyX3R5cGU9TUlH
Ul9SRUJVSUxEIG1hcDBzdGF0ZT1ub3JtYWwNCiAgKiAgICBtYXAxc3RhdGU9 ZGVncmFkZWQpDQor
ICogNS8gTWlncmF0aW9uIChtaWdfc3RhdGU9MSBtaWdyX3R5cGU9TUlHUl9H RU5fTUlHUiBtYXAw
c3RhdGU9bm9ybWFsDQorICogICAgbWFwMXN0YXRlPW5vcm1hbCkNCiAgKi8N Ci1zdGF0aWMgdm9p
ZCBtaWdyYXRlKHN0cnVjdCBpbXNtX2RldiAqZGV2LCBfX3U4IHRvX3N0YXRl LCBpbnQgbWlncl90
eXBlKQ0KK3N0YXRpYyB2b2lkIG1pZ3JhdGUoc3RydWN0IGltc21fZGV2ICpk ZXYsIHN0cnVjdCBp
bnRlbF9zdXBlciAqc3VwZXIsDQorICAgICAgICAgICAgICAgICAgIF9fdTgg dG9fc3RhdGUsIGlu
dCBtaWdyX3R5cGUpDQogew0KICAgICAgICBzdHJ1Y3QgaW1zbV9tYXAgKmRl c3Q7DQogICAgICAg
IHN0cnVjdCBpbXNtX21hcCAqc3JjID0gZ2V0X2ltc21fbWFwKGRldiwgMCk7 DQorICAgICAgIF9f
dTMyIG9yZDsNCisgICAgICAgaW50IGk7DQoNCiAgICAgICAgZGV2LT52b2wu bWlncl9zdGF0ZSA9
IDE7DQogICAgICAgIHNldF9taWdyX3R5cGUoZGV2LCBtaWdyX3R5cGUpOw0K QEAgLTIxMDYsMTUg
KzIyOTQsMzQgQEAgc3RhdGljIHZvaWQgbWlncmF0ZShzdHJ1Y3QgaW1zbV9k ZXYgKmRldiwgX191
OCB0b19zdGF0ZSwgaW50IG1pZ3JfdHlwZSkNCg0KICAgICAgICAvKiBkdXBs aWNhdGUgYW5kIHRo
ZW4gc2V0IHRoZSB0YXJnZXQgZW5kIHN0YXRlIGluIG1hcFswXSAqLw0KICAg ICAgICBtZW1jcHko
ZGVzdCwgc3JjLCBzaXplb2ZfaW1zbV9tYXAoc3JjKSk7DQotICAgICAgIGlm ICgobWlncl90eXBl
ID09IE1JR1JfUkVCVUlMRCkgfHwNCi0gICAgICAgICAgIChtaWdyX3R5cGUg PT0gIE1JR1JfR0VO
X01JR1IpKSB7DQotICAgICAgICAgICAgICAgX191MzIgb3JkOw0KLSAgICAg ICAgICAgICAgIGlu
dCBpOw0KKyAgICAgICBpZiAobWlncl90eXBlID09IE1JR1JfUkVCVUlMRCkN CisgICAgICAgICAg
ICAgICBmb3IgKGkgPSAwOyBpIDwgc3JjLT5udW1fbWVtYmVyczsgaSsrKSB7 DQorICAgICAgICAg
ICAgICAgICAgICAgICBvcmQgPSBfX2xlMzJfdG9fY3B1KHNyYy0+ZGlza19v cmRfdGJsW2ldKTsN
CisgICAgICAgICAgICAgICAgICAgICAgIHNldF9pbXNtX29yZF90YmxfZW50 KHNyYywgaSwgb3Jk
X3RvX2lkeChvcmQpKTsNCisgICAgICAgICAgICAgICB9DQoNCisgICAgICAg aWYgKG1pZ3JfdHlw
ZSA9PSBNSUdSX0dFTl9NSUdSKSB7DQogICAgICAgICAgICAgICAgZm9yIChp ID0gMDsgaSA8IHNy
Yy0+bnVtX21lbWJlcnM7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICAg ICAgb3JkID0gX19s
ZTMyX3RvX2NwdShzcmMtPmRpc2tfb3JkX3RibFtpXSk7DQogICAgICAgICAg ICAgICAgICAgICAg
ICBzZXRfaW1zbV9vcmRfdGJsX2VudChzcmMsIGksIG9yZF90b19pZHgob3Jk KSk7DQogICAgICAg
ICAgICAgICAgfQ0KKw0KKyAgICAgICAgICAgICAgIC8qIEluaXRpYWxpemUg TWlncmF0aW9uIHJl
Y29yZCBhcmVhICovDQorICAgICAgICAgICAgICAgc3RydWN0IE1pZ3JSZWNv cmQgbWlnclJlYzsN
CisgICAgICAgICAgICAgICBtZW1zZXQoJm1pZ3JSZWMsIDAsIHNpemVvZiht aWdyUmVjKSk7DQor
ICAgICAgICAgICAgICAgbWlnclJlYy5mYW1pbHlOdW0gPSBzdXBlci0+YW5j aG9yLT5mYW1pbHlf
bnVtOw0KKw0KKyAgICAgICAgICAgICAgIHN0cnVjdCBkbCAqZGw7DQorICAg ICAgICAgICAgICAg
Y2hhciBubVsyMF07DQorICAgICAgICAgICAgICAgaW50IGRmZDsNCisgICAg ICAgICAgICAgICBm
b3IgKGRsID0gc3VwZXItPmRpc2tzOyBkbDsgZGwgPSBkbC0+bmV4dCkgew0K KyAgICAgICAgICAg
ICAgICAgICAgICAgc3ByaW50ZihubSwgIiVkOiVkIiwgZGwtPm1ham9yLCBk bC0+bWlub3IpOw0K
KyAgICAgICAgICAgICAgICAgICAgICAgZGZkID0gZGV2X29wZW4obm0sIE9f UkRXUik7DQorICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoZGZkIDwgMCkNCisgICAgICAgICAg ICAgICAgICAgICAg
ICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgICAgICAgICAgICB3 cml0ZV9pbXNtX21p
Z3JfcmVjKGRmZCwgJm1pZ3JSZWMsIGRsLT5kZXZuYW1lKTsNCisgICAgICAg ICAgICAgICAgICAg
ICAgIGNsb3NlKGRmZCk7DQorICAgICAgICAgICAgICAgfQ0KICAgICAgICB9 DQoNCiAgICAgICAg
c3JjLT5tYXBfc3RhdGUgPSB0b19zdGF0ZTsNCkBAIC0yMTY3LDYgKzIzNzQs NyBAQCBzdGF0aWMg
aW50IHBhcnNlX3JhaWRfZGV2aWNlcyhzdHJ1Y3QgaW50ZWxfc3VwZXIgKnN1 cGVyKQ0KICAgICAg
ICAgICAgICAgICAgICAgICAgZHYgPSBOVUxMOw0KICAgICAgICAgICAgICAg ICAgICAgICAgcmV0
dXJuIDE7DQogICAgICAgICAgICAgICAgfQ0KKw0KICAgICAgICAgICAgICAg IGltc21fY29weV9k
ZXYoZGV2X25ldywgZGV2X2l0ZXIpOw0KICAgICAgICAgICAgICAgIGR2LT5k ZXYgPSBkZXZfbmV3
Ow0KICAgICAgICAgICAgICAgIGR2LT5pbmRleCA9IGk7DQpAQCAtMjIwNyw2 ICsyNDE1LDkwIEBA
IHN0cnVjdCBiYm1fbG9nICpfX2dldF9pbXNtX2JibV9sb2coc3RydWN0IGlt c21fc3VwZXIgKm1w
YikNCiAgICAgICAgcmV0dXJuIHB0cjsNCiB9DQoNCisvKiBTd2l0Y2hlcyBO LWRpc2sgUmFpZDAg
bWFwIGNvbmZpZ3VyYXRpb24gKE4rMSlkaXNrIFJhaWQ0DQorICovDQordm9p ZCBzd2l0Y2hfcmFp
ZDBfY29uZmlndXJhdGlvbihzdHJ1Y3QgaW1zbV9zdXBlciAqbXBiLCBzdHJ1 Y3QgaW1zbV9tYXAg
Km1hcCkNCit7DQorICAgICAgIF9fdTggKnNyYywgKmRzdDsNCisgICAgICAg aW50IGJ5dGVzX3Rv
X2NvcHk7DQorDQorICAgICAgIC8qIGdldCB0aGUgcG9pbnRlciB0byB0aGUg cmVzdCBvZiB0aGUg
bWV0YWRhdGEgKi8NCisgICAgICAgc3JjID0gKF9fdTggKiltYXAgKyBzaXpl b2ZfaW1zbV9tYXAo
bWFwKTsNCisNCisgICAgICAgLyogY2hhbmdlIHRoZSBsZXZlbCBhbmQgZGlz ayBudW1iZXIgdG8g
YmUgY29tcGF0aWJsZSB3aXRoIElNU00gKi8NCisgICAgICAgbWFwLT5yYWlk X2xldmVsID0gNDsN
CisgICAgICAgbWFwLT5udW1fbWVtYmVycysrOw0KKw0KKyAgICAgICAvKiBn ZXQgdGhlIHVwZGF0
ZWQgcG9pbnRlciB0byB0aGUgcmVzdCBvZiB0aGUgbWV0YWRhdGEgKi8NCisg ICAgICAgZHN0ID0g
KF9fdTggKiltYXAgKyBzaXplb2ZfaW1zbV9tYXAobWFwKTsNCisgICAgICAg LyogTm93IG1vdmUg
dGhlIHJlc3Qgb2YgdGhlIG1ldGFkYXRhIHRvIGJlIHByb3Blcmx5IGFsaWdu ZWQgKi8NCisgICAg
ICAgYnl0ZXNfdG9fY29weSA9IG1wYi0+bXBiX3NpemUgLSAoc3JjIC0gKF9f dTggKiltcGIpOw0K
KyAgICAgICBpZiAoYnl0ZXNfdG9fY29weSA+IDApDQorICAgICAgICAgICAg ICAgbWVtbW92ZShk
c3QsIHNyYywgYnl0ZXNfdG9fY29weSk7DQorICAgICAgIC8qIE5vdyBpbnNl cnQgbmV3IGVudHJ5
IHRvIHRoZSBtYXAgKi8NCisgICAgICAgc2V0X2ltc21fb3JkX3RibF9lbnQo bWFwLCBtYXAtPm51
bV9tZW1iZXJzIC0gMS8qc2xvdCovLA0KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1wYi0+bnVtX2Rpc2tzIHwgSU1TTV9PUkRfUkVC VUlMRCk7DQorICAg
ICAgIC8qIHVwZGF0ZSBzaXplICovDQorICAgICAgIG1wYi0+bXBiX3NpemUg Kz0gc2l6ZW9mKF9f
dTMyKTsNCit9DQorDQorLyogTWFrZSBzdXJlIHRoYXQgaW4gY2FzZSBvZiBt aWdyYXRpb24gaW4g
cHJvZ3Jlc3Mgd2UnbGwgY29udmVydCByYWlkDQorICogcGVyc29uYWxpdGll cyBzbyB3ZSBjb3Vs
ZCBjb250aW51ZSBtaWdyYXRpbmcNCisgKi8NCit2b2lkIGNoZWNrX21wYl9t aWdyX2NvbXBhdGli
aWxpdHkoc3RydWN0IGludGVsX3N1cGVyICpzdXBlcikNCit7DQorICAgICAg IHN0cnVjdCBpbXNt
X3N1cGVyICptcGIgPSBzdXBlci0+YW5jaG9yOw0KKyAgICAgICBzdHJ1Y3Qg aW1zbV9tYXAgKm1h
cDsNCisgICAgICAgc3RydWN0IGltc21fZGlzayAqbmV3TWlzc2luZzsNCisg ICAgICAgaW50IGks
IG1hcF9tb2RpZmllZCA9IDA7DQorICAgICAgIGludCBieXRlc190b19jb3B5 Ow0KKyAgICAgICBf
X3U4ICpzcmMsICpkc3Q7DQorDQorICAgICAgIGZvciAoaSA9IDA7IGkgPCBz dXBlci0+YW5jaG9y
LT5udW1fcmFpZF9kZXZzOyBpKyspIHsNCisgICAgICAgICAgICAgICBzdHJ1 Y3QgaW1zbV9kZXYg
KmRldl9pdGVyID0gX19nZXRfaW1zbV9kZXYoc3VwZXItPmFuY2hvciwgaSk7 DQorDQorICAgICAg
ICAgICAgICAgbWFwX21vZGlmaWVkID0gMDsNCisgICAgICAgICAgICAgICBp ZiAoZGV2X2l0ZXIt
PnZvbC5taWdyX3N0YXRlID09IE1JR1JfR0VOX01JR1IpIHsNCisgICAgICAg ICAgICAgICAgICAg
ICAgIC8qIFRoaXMgZGV2aWNlIGlzIG1pZ3JhdGluZywgY2hlY2sgZm9yIHJh aWQwIGxldmVscyAq
Lw0KKyAgICAgICAgICAgICAgICAgICAgICAgbWFwID0gZ2V0X2ltc21fbWFw KGRldl9pdGVyLCAw
KTsNCisgICAgICAgICAgICAgICAgICAgICAgIGlmIChtYXAtPnJhaWRfbGV2 ZWwgPT0gMCkgew0K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNYXAwOiBNaWdy YXRpbmcgcmFpZDAg
ZGV0ZWN0ZWQgLSBsZXRzIHN3aXRjaCBpdCB0byBsZXZlbDQgKi8NCisgICAg ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc3dpdGNoX3JhaWQwX2NvbmZpZ3VyYXRpb24obXBi LCBtYXApOw0KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBfbW9kaWZpZWQrKzsN CisgICAgICAgICAg
ICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgICAgICAgICAgIG1hcCA9 IGdldF9pbXNtX21h
cChkZXZfaXRlciwgMSk7DQorICAgICAgICAgICAgICAgICAgICAgICBpZiAo bWFwLT5yYWlkX2xl
dmVsID09IDApIHsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg LyogTWFwMTogTWln
cmF0aW5nIHJhaWQwIGRldGVjdGVkIC0gbGV0cyBzd2l0Y2ggaXQgdG8gbGV2 ZWw0ICovDQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaF9yYWlkMF9jb25m aWd1cmF0aW9uKG1w
YiwgbWFwKTsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFw X21vZGlmaWVkKys7
DQorICAgICAgICAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICAg fQ0KKyAgICAgICB9
DQorDQorICAgICAgIGlmIChtYXBfbW9kaWZpZWQgPiAwKSB7DQorICAgICAg ICAgICAgICAgLyog
QWRkIG1pc3NpbmcgZGV2aWNlIHRvIHRoZSBNUEIgZGlzayB0YWJsZSAqLw0K KyAgICAgICAgICAg
ICAgIHNyYyA9IChfX3U4ICopbXBiLT5kaXNrICsgc2l6ZW9mKHN0cnVjdCBp bXNtX2Rpc2spICog
bXBiLT5udW1fZGlza3M7DQorICAgICAgICAgICAgICAgbXBiLT5udW1fZGlz a3MrKzsNCisgICAg
ICAgICAgICAgICBkc3QgPSAoX191OCAqKW1wYi0+ZGlzayArIHNpemVvZihz dHJ1Y3QgaW1zbV9k
aXNrKSAqIG1wYi0+bnVtX2Rpc2tzOw0KKw0KKyAgICAgICAgICAgICAgIC8q IE5vdyBtb3ZlIHRo
ZSByZXN0IG9mIHRoZSBtZXRhZGF0YSB0byBiZSBwcm9wZXJseSBhbGlnbmVk ICovDQorICAgICAg
ICAgICAgICAgYnl0ZXNfdG9fY29weSA9IG1wYi0+bXBiX3NpemUgLSAoc3Jj IC0gKF9fdTggKilt
cGIpOw0KKyAgICAgICAgICAgICAgIGlmIChieXRlc190b19jb3B5ID4gMCkN CisgICAgICAgICAg
ICAgICAgICAgICAgIG1lbW1vdmUoZHN0LCBzcmMsIGJ5dGVzX3RvX2NvcHkp Ow0KKw0KKyAgICAg
ICAgICAgICAgIC8qIFVwZGF0ZSBtcGIgc2l6ZSAqLw0KKyAgICAgICAgICAg ICAgIG1wYi0+bXBi
X3NpemUgKz0gc2l6ZW9mKHN0cnVjdCBpbXNtX2Rpc2spOw0KKw0KKyAgICAg ICAgICAgICAgIC8q
IE5vdyBmaWxsIGluIHRoZSBuZXcgbWlzc2luZyBkaXNrIGZpZWxkcyAqLw0K KyAgICAgICAgICAg
ICAgIG5ld01pc3NpbmcgPSAoc3RydWN0IGltc21fZGlzayAqKXNyYzsNCisg ICAgICAgICAgICAg
ICBzcHJpbnRmKChjaGFyICopbmV3TWlzc2luZy0+c2VyaWFsLCAiJXMiLCAi TUlTU0lORyBESVNL
Iik7DQorICAgICAgICAgICAgICAgLyogY29weSB0aGUgZGV2aWNlIHNpemUg ZnJvbSB0aGUgZmly
c3QgZGlzayAqLw0KKyAgICAgICAgICAgICAgIG5ld01pc3NpbmctPnRvdGFs X2Jsb2NrcyA9IG1w
Yi0+ZGlza1swXS50b3RhbF9ibG9ja3M7DQorICAgICAgICAgICAgICAgbmV3 TWlzc2luZy0+c2Nz
aV9pZCA9IDB4MDsNCisgICAgICAgICAgICAgICBuZXdNaXNzaW5nLT5zdGF0 dXMgPSBGQUlMRURf
RElTSzsNCisgICAgICAgfQ0KK30NCisNCiBzdGF0aWMgdm9pZCBfX2ZyZWVf aW1zbShzdHJ1Y3Qg
aW50ZWxfc3VwZXIgKnN1cGVyLCBpbnQgZnJlZV9kaXNrcyk7DQoNCiAvKiBs b2FkX2ltc21fbXBi
IC0gcmVhZCBtYXRyaXggbWV0YWRhdGENCkBAIC0yMzE0LDYgKzI2MDYsMTIg QEAgc3RhdGljIGlu
dCBsb2FkX2ltc21fbXBiKGludCBmZCwgc3RydWN0IGludGVsX3N1cGVyICpz dXBlciwgY2hhciAq
ZGV2bmFtZSkNCiAgICAgICAgICAgICAgICByZXR1cm4gMzsNCiAgICAgICAg fQ0KDQorDQorICAg
ICAgIC8qIE5vdyBtYWtlIHN1cmUgdGhhdCBpbiBjYXNlIG9mIG1pZ3JhdGlv bg0KKyAgICAgICAg
KiB3ZSdsbCBjb252ZXJ0IHJhaWQgcGVyc29uYWxpdGllcw0KKyAgICAgICAg Ki8NCisgICAgICAg
Y2hlY2tfbXBiX21pZ3JfY29tcGF0aWJpbGl0eShzdXBlcik7DQorDQogICAg ICAgIC8qIEZJWE1F
IHRoZSBCQk0gbG9nIGlzIGRpc2sgc3BlY2lmaWMgc28gd2UgY2Fubm90IHVz ZSB0aGlzIGdsb2Jh
bA0KICAgICAgICAgKiBidWZmZXIgZm9yIGFsbCBkaXNrcy4gIE9rIGZvciBu b3cgc2luY2Ugd2Ug
b25seSBsb29rIGF0IHRoZSBnbG9iYWwNCiAgICAgICAgICogYmJtX2xvZ19z aXplIHBhcmFtZXRl
ciB0byBnYXRlIGFzc2VtYmx5DQpAQCAtMzcyOSw3ICs0MDI3LDcgQEAgc3Rh dGljIGludCBjcmVh
dGVfYXJyYXkoc3RydWN0IHN1cGVydHlwZSAqc3QsIGludCBkZXZfaWR4KQ0K ICAgICAgICBpbXNt
X2NvcHlfZGV2KCZ1LT5kZXYsIGRldik7DQogICAgICAgIGluZiA9IGdldF9k aXNrX2luZm8odSk7
DQogICAgICAgIGZvciAoaSA9IDA7IGkgPCBtYXAtPm51bV9tZW1iZXJzOyBp KyspIHsNCi0gICAg
ICAgICAgICAgICBpbnQgaWR4ID0gZ2V0X2ltc21fZGlza19pZHgoZGV2LCBp KTsNCisgICAgICAg
ICAgICAgICBpbnQgaWR4ID0gZ2V0X2ltc21fZGlza19pZHgoZGV2LCBpLCAt MSk7DQoNCiAgICAg
ICAgICAgICAgICBkaXNrID0gZ2V0X2ltc21fZGlzayhzdXBlciwgaWR4KTsN CiAgICAgICAgICAg
ICAgICBzZXJpYWxjcHkoaW5mW2ldLnNlcmlhbCwgZGlzay0+c2VyaWFsKTsN CkBAIC00NDE1LDcg
KzQ3MTMsNyBAQCBzdGF0aWMgc3RydWN0IG1kaW5mbyAqY29udGFpbmVyX2Nv bnRlbnRfaW1zbShz
dHJ1Y3Qgc3VwZXJ0eXBlICpzdCkNCiAgICAgICAgICAgICAgICBtcGIgPSBz dXBlci0+YW5jaG9y
Ow0KICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7 DQotDQorICAgICAg
IGZwcmludGYoc3RkZXJyLCAiY2FsbGluZyBjb250YWluZXJfY29udGVudF9p bXNtKCkuLi5cbiIp
Ow0KICAgICAgICAvKiBkbyBub3QgYXNzZW1ibGUgYXJyYXlzIHRoYXQgbWln aHQgaGF2ZSBiYWQg
YmxvY2tzICovDQogICAgICAgIGlmIChpbXNtX2JibV9sb2dfc2l6ZShzdXBl ci0+YW5jaG9yKSkg
ew0KICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCBOYW1lICI6IEJC TSBsb2cgZm91bmQg
aW4gbWV0YWRhdGEuICINCkBAIC00NDYwLDggKzQ3NTgsOCBAQCBzdGF0aWMg c3RydWN0IG1kaW5m
byAqY29udGFpbmVyX2NvbnRlbnRfaW1zbShzdHJ1Y3Qgc3VwZXJ0eXBlICpz dCkNCiAgICAgICAg
ICAgICAgICAgICAgICAgIF9fdTMyIG9yZDsNCg0KICAgICAgICAgICAgICAg ICAgICAgICAgc2tp
cCA9IDA7DQotICAgICAgICAgICAgICAgICAgICAgICBpZHggPSBnZXRfaW1z bV9kaXNrX2lkeChk
ZXYsIHNsb3QpOw0KLSAgICAgICAgICAgICAgICAgICAgICAgb3JkID0gZ2V0 X2ltc21fb3JkX3Ri
bF9lbnQoZGV2LCBzbG90KTsNCisgICAgICAgICAgICAgICAgICAgICAgIGlk eCA9IGdldF9pbXNt
X2Rpc2tfaWR4KGRldiwgc2xvdCwgMCk7DQorICAgICAgICAgICAgICAgICAg ICAgICBvcmQgPSBn
ZXRfaW1zbV9vcmRfdGJsX2VudChkZXYsIHNsb3QsIDApOw0KICAgICAgICAg ICAgICAgICAgICAg
ICAgZm9yIChkID0gc3VwZXItPmRpc2tzOyBkIDsgZCA9IGQtPm5leHQpDQog ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChkLT5pbmRleCA9PSBpZHgpDQogICAg ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQpAQCAtNDU3NCw3ICs0 ODcyLDcgQEAgc3Rh
dGljIF9fdTggaW1zbV9jaGVja19kZWdyYWRlZChzdHJ1Y3QgaW50ZWxfc3Vw ZXIgKnN1cGVyLCBz
dHJ1Y3QgaW1zbV9kZXYgKmRldiwNCiAgICAgICAgICAgICAgICBpbnQgaW5z eW5jID0gaW5zeW5j
Ow0KDQogICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG1hcC0+bnVt X21lbWJlcnM7IGkr
Kykgew0KLSAgICAgICAgICAgICAgICAgICAgICAgX191MzIgb3JkID0gZ2V0 X2ltc21fb3JkX3Ri
bF9lbnQoZGV2LCBpKTsNCisgICAgICAgICAgICAgICAgICAgICAgIF9fdTMy IG9yZCA9IGdldF9p
bXNtX29yZF90YmxfZW50KGRldiwgaSwgLTEpOw0KICAgICAgICAgICAgICAg ICAgICAgICAgaW50
IGlkeCA9IG9yZF90b19pZHgob3JkKTsNCiAgICAgICAgICAgICAgICAgICAg ICAgIHN0cnVjdCBp
bXNtX2Rpc2sgKmRpc2s7DQoNCkBAIC00NzY3LDEzICs1MDY1LDE0IEBAIHN0 YXRpYyBpbnQgaW1z
bV9zZXRfYXJyYXlfc3RhdGUoc3RydWN0IGFjdGl2ZV9hcnJheSAqYSwgaW50 IGNvbnNpc3RlbnQp
DQogICAgICAgICAgICAgICAgICAgICAgICBlbmRfbWlncmF0aW9uKGRldiwg bWFwX3N0YXRlKTsN
CiAgICAgICAgICAgICAgICAgICAgICAgIHN1cGVyLT51cGRhdGVzX3BlbmRp bmcrKzsNCiAgICAg
ICAgICAgICAgICB9DQotICAgICAgIH0gZWxzZSBpZiAoIWlzX3Jlc3luY2lu ZyhkZXYpICYmICFm
YWlsZWQpIHsNCisgICAgICAgfSBlbHNlIGlmICghaXNfcmVzeW5jaW5nKGRl dikgJiYgIWZhaWxl
ZA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgKG1pZ3JfdHlwZShk ZXYpICE9IE1JR1Jf
R0VOX01JR1IpKSB7DQogICAgICAgICAgICAgICAgLyogbWFyayB0aGUgc3Rh cnQgb2YgdGhlIGlu
aXQgcHJvY2VzcyBpZiBub3RoaW5nIGlzIGZhaWxlZCAqLw0KICAgICAgICAg ICAgICAgIGRwcmlu
dGYoImltc206IG1hcmsgcmVzeW5jIHN0YXJ0XG4iKTsNCiAgICAgICAgICAg ICAgICBpZiAobWFw
LT5tYXBfc3RhdGUgPT0gSU1TTV9UX1NUQVRFX1VOSU5JVElBTElaRUQpDQot ICAgICAgICAgICAg
ICAgICAgICAgICBtaWdyYXRlKGRldiwgSU1TTV9UX1NUQVRFX05PUk1BTCwg TUlHUl9JTklUKTsN
CisgICAgICAgICAgICAgICAgICAgICAgIG1pZ3JhdGUoZGV2LCBzdXBlciwg SU1TTV9UX1NUQVRF
X05PUk1BTCwgTUlHUl9JTklUKTsNCiAgICAgICAgICAgICAgICBlbHNlDQot ICAgICAgICAgICAg
ICAgICAgICAgICBtaWdyYXRlKGRldiwgSU1TTV9UX1NUQVRFX05PUk1BTCwg TUlHUl9SRVBBSVIp
Ow0KKyAgICAgICAgICAgICAgICAgICAgICAgbWlncmF0ZShkZXYsIHN1cGVy LCBJTVNNX1RfU1RB
VEVfTk9STUFMLCBNSUdSX1JFUEFJUik7DQogICAgICAgICAgICAgICAgc3Vw ZXItPnVwZGF0ZXNf
cGVuZGluZysrOw0KICAgICAgICB9DQoNCkBAIC00NzgzLDEyICs1MDgyLDEz IEBAIHN0YXRpYyBp
bnQgaW1zbV9zZXRfYXJyYXlfc3RhdGUoc3RydWN0IGFjdGl2ZV9hcnJheSAq YSwgaW50IGNvbnNp
c3RlbnQpDQogICAgICAgICAgICAgICAgX191MzIgdW5pdHMzMjsNCiAgICAg ICAgICAgICAgICBf
X3U2NCB1bml0czsNCg0KLSAgICAgICAgICAgICAgIGlmICgobWlncl90eXBl KGRldikgPT0gTUlH
Ul9SRUJVSUxEKSB8fA0KLSAgICAgICAgICAgICAgICAgICAobWlncl90eXBl KGRldikgPT0gTUlH
Ul9HRU5fTUlHUikpIC8qIGZvciBPTENFIHdlIGhhdmUgdG8gZG8gaXQsDQot ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2ltaWxh
ciB0byByZWJ1aWxkICovDQorICAgICAgICAgICAgICAgaWYgKG1pZ3JfdHlw ZShkZXYpID09IE1J
R1JfUkVCVUlMRCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgdW5pdHMg PSBtaW5fcmVjb3Zl
cnlfc3RhcnQoJmEtPmluZm8pIC8gYmxvY2tzX3Blcl91bml0Ow0KLSAgICAg ICAgICAgICAgIGVs
c2UNCisgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1pZ3JfdHlwZShkZXYp ID09IE1JR1JfR0VO
X01JR1IpIHsNCisgICAgICAgICAgICAgICAgICAgICAgIHVuaXRzID0gYS0+ cmVzaGFwZV9wb3Np
dGlvbiAvIGJsb2Nrc19wZXJfdW5pdDsNCisgICAgICAgICAgICAgICB9IGVs c2Ugew0KICAgICAg
ICAgICAgICAgICAgICAgICAgdW5pdHMgPSBhLT5pbmZvLnJlc3luY19zdGFy dCAvIGJsb2Nrc19w
ZXJfdW5pdDsNCisgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAg dW5pdHMzMiA9IHVu
aXRzOw0KDQogICAgICAgICAgICAgICAgLyogY2hlY2sgdGhhdCB3ZSBkaWQg bm90IG92ZXJmbG93
IDMyLWJpdHMsIGFuZCB0aGF0DQpAQCAtNDg0OCw3ICs1MTQ4LDcgQEAgc3Rh dGljIHZvaWQgaW1z
bV9zZXRfZGlzayhzdHJ1Y3QgYWN0aXZlX2FycmF5ICphLCBpbnQgbiwgaW50 IHN0YXRlKQ0KDQog
ICAgICAgIGRwcmludGYoImltc206IHNldF9kaXNrICVkOiV4XG4iLCBuLCBz dGF0ZSk7DQoNCi0g
ICAgICAgb3JkID0gZ2V0X2ltc21fb3JkX3RibF9lbnQoZGV2LCBuKTsNCisg ICAgICAgb3JkID0g
Z2V0X2ltc21fb3JkX3RibF9lbnQoZGV2LCBuLCAtMSk7DQogICAgICAgIGRp c2sgPSBnZXRfaW1z
bV9kaXNrKHN1cGVyLCBvcmRfdG9faWR4KG9yZCkpOw0KDQogICAgICAgIC8q IGNoZWNrIGZvciBu
ZXcgZmFpbHVyZXMgKi8NCkBAIC00OTQ2LDcgKzUyNDYsNyBAQCBzdGF0aWMg dm9pZCBpbXNtX3N5
bmNfbWV0YWRhdGEoc3RydWN0IHN1cGVydHlwZSAqY29udGFpbmVyKQ0KIHN0 YXRpYyBzdHJ1Y3Qg
ZGwgKmltc21fcmVhZGQoc3RydWN0IGludGVsX3N1cGVyICpzdXBlciwgaW50 IGlkeCwgc3RydWN0
IGFjdGl2ZV9hcnJheSAqYSkNCiB7DQogICAgICAgIHN0cnVjdCBpbXNtX2Rl diAqZGV2ID0gZ2V0
X2ltc21fZGV2KHN1cGVyLCBhLT5pbmZvLmNvbnRhaW5lcl9tZW1iZXIpOw0K LSAgICAgICBpbnQg
aSA9IGdldF9pbXNtX2Rpc2tfaWR4KGRldiwgaWR4KTsNCisgICAgICAgaW50 IGkgPSBnZXRfaW1z
bV9kaXNrX2lkeChkZXYsIGlkeCwgLTEpOw0KICAgICAgICBzdHJ1Y3QgZGwg KmRsOw0KDQogICAg
ICAgIGZvciAoZGwgPSBzdXBlci0+ZGlza3M7IGRsOyBkbCA9IGRsLT5uZXh0 KQ0KQEAgLTQ5NjYs
NyArNTI2Niw3IEBAIHN0YXRpYyBzdHJ1Y3QgZGwgKmltc21fYWRkX3NwYXJl KHN0cnVjdCBpbnRl
bF9zdXBlciAqc3VwZXIsIGludCBzbG90LA0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAg
ICAgc3RydWN0IGFjdGl2ZV9hcnJheSAqYSwgaW50IGFjdGl2YXRlX25ldykN CiB7DQogICAgICAg
IHN0cnVjdCBpbXNtX2RldiAqZGV2ID0gZ2V0X2ltc21fZGV2KHN1cGVyLCBh LT5pbmZvLmNvbnRh
aW5lcl9tZW1iZXIpOw0KLSAgICAgICBpbnQgaWR4ID0gZ2V0X2ltc21fZGlz a19pZHgoZGV2LCBz
bG90KTsNCisgICAgICAgaW50IGlkeCA9IGdldF9pbXNtX2Rpc2tfaWR4KGRl diwgc2xvdCwgLTEp
Ow0KICAgICAgICBzdHJ1Y3QgaW1zbV9zdXBlciAqbXBiID0gc3VwZXItPmFu Y2hvcjsNCiAgICAg
ICAgc3RydWN0IGltc21fbWFwICptYXA7DQogICAgICAgIHVuc2lnbmVkIGxv bmcgbG9uZyBwb3M7
DQpAQCAtNTM3NSw3ICs1Njc1LDcgQEAgc3RhdGljIGludCBkaXNrc19vdmVy bGFwKHN0cnVjdCBp
bnRlbF9zdXBlciAqc3VwZXIsIGludCBpZHgsIHN0cnVjdCBpbXNtX3VwZGF0 ZV8NCiAgICAgICAg
aW50IGo7DQoNCiAgICAgICAgZm9yIChpID0gMDsgaSA8IG1hcC0+bnVtX21l bWJlcnM7IGkrKykg
ew0KLSAgICAgICAgICAgICAgIGRpc2sgPSBnZXRfaW1zbV9kaXNrKHN1cGVy LCBnZXRfaW1zbV9k
aXNrX2lkeChkZXYsIGkpKTsNCisgICAgICAgICAgICAgICBkaXNrID0gZ2V0 X2ltc21fZGlzayhz
dXBlciwgZ2V0X2ltc21fZGlza19pZHgoZGV2LCBpLCAtMSkpOw0KICAgICAg ICAgICAgICAgIGZv
ciAoaiA9IDA7IGogPCBuZXdfbWFwLT5udW1fbWVtYmVyczsgaisrKQ0KICAg ICAgICAgICAgICAg
ICAgICAgICAgaWYgKHNlcmlhbGNtcChkaXNrLT5zZXJpYWwsIGluZltqXS5z ZXJpYWwpID09IDAp
DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOw0K QEAgLTU1MjYsNyAr
NTgyNiw3IEBAIHN0YXRpYyB2b2lkIGltc21fcHJvY2Vzc191cGRhdGUoc3Ry dWN0IHN1cGVydHlw
ZSAqc3QsDQogICAgICAgICAgICAgICAgICAgICAgICAvKiBVcGRhdGUgc2xv dHMgaW4gdGhlIHJh
aWQgbWFwICovDQogICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGkgPSAw OyBpIDwgdS0+c2xf
Y2hhbmdlZDsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGludCBpZHg7
DQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkeCA9IGdldF9p bXNtX29yZF90Ymxf
ZW50KGRldiwgdS0+c2xfY2hhbmdlc1tpXS5wcmV2X3Nsb3QpOw0KKyAgICAg ICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZHggPSBnZXRfaW1zbV9vcmRfdGJsX2VudChkZXYs IHUtPnNsX2NoYW5n
ZXNbaV0ucHJldl9zbG90LCAwKTsNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLyog
bm93IGFmdGVyIHNsb3QgY2hhbmdlcyAqLw0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAg
ICBzZXRfaW1zbV9vcmRfdGJsX2VudChtYXAsIHUtPnNsX2NoYW5nZXNbaV0u bmV3X3Nsb3QsIGlk
eCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQpAQCAtNTU5OCw3ICs1 ODk4LDcgQEAgc3Rh
dGljIHZvaWQgaW1zbV9wcm9jZXNzX3VwZGF0ZShzdHJ1Y3Qgc3VwZXJ0eXBl ICpzdCwNCiAgICAg
ICAgICAgICAgICAgICAgICAgIC8qIFVwZGF0ZSBzbG90cyBpbiB0aGUgcmFp ZCBtYXAgKi8NCiAg
ICAgICAgICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCB1LT5zbF9j aGFuZ2VkOyBpKysp
IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGlkeDsN Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWR4ID0gZ2V0X2ltc21fb3JkX3RibF9l bnQoZGV2LCB1LT5z
bF9jaGFuZ2VzW2ldLnByZXZfc2xvdCk7DQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAg
IGlkeCA9IGdldF9pbXNtX29yZF90YmxfZW50KGRldiwgdS0+c2xfY2hhbmdl c1tpXS5wcmV2X3Ns
b3QsIDApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBu b3cgYWZ0ZXIgc2xv
dCBjaGFuZ2VzICovDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNldF9pbXNtX29y
ZF90YmxfZW50KG1hcCwgdS0+c2xfY2hhbmdlc1tpXS5uZXdfc2xvdCwgaWR4 KTsNCiAgICAgICAg
ICAgICAgICAgICAgICAgIH0NCkBAIC01NjU3LDEwICs1OTU3LDE0IEBAIHN0 YXRpYyB2b2lkIGlt
c21fcHJvY2Vzc191cGRhdGUoc3RydWN0IHN1cGVydHlwZSAqc3QsDQogICAg ICAgICAgICAgICAg
ICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImVycm9yOiBJTVNNOiBDYW5ub3Qg ZmluZCByZXF1ZXN0
ZWQgZGV2aWNlXG4iKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8g dXBkYXRlX2FkZF9z
cGFyZV9leGl0Ow0KICAgICAgICAgICAgICAgIH0NCisNCiAgICAgICAgICAg ICAgICAvKiB1c2Ug
Zmlyc3QgbWFwIGFzIGEgYmFzZSAqLw0KICAgICAgICAgICAgICAgIG1pZ3Jf c3RhdGUgPSBkZXYt
PnZvbC5taWdyX3N0YXRlOw0KICAgICAgICAgICAgICAgIGRldi0+dm9sLm1p Z3Jfc3RhdGUgPSAw
Ow0KDQorICAgICAgICAgICAgICAgaWYgKG1pZ3Jfc3RhdGUgIT0gMCkNCisg ICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybjsNCisNCiAgICAgICAgICAgICAgICBtYXAgPSBn ZXRfaW1zbV9tYXAo
ZGV2LCAwKTsNCiAgICAgICAgICAgICAgICBpZiAobWFwID09IE5VTEwpIHsN CiAgICAgICAgICAg
ICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiZXJyb3I6IElNU006IElu dmFsaWQgbWFwIGZv
ciByZXF1ZXN0ZWQgZGV2aWNlXG4iKTsNCkBAIC01NzAxLDcgKzYwMDUsNyBA QCBzdGF0aWMgdm9p
ZCBpbXNtX3Byb2Nlc3NfdXBkYXRlKHN0cnVjdCBzdXBlcnR5cGUgKnN0LA0K ICAgICAgICAgICAg
ICAgICAgICAgICAgLyogc2V0IG1pZ3JhdGlvbi8gbm8gbWlncmF0aW9uIGlu IHByb2dyZXNzICov
DQogICAgICAgICAgICAgICAgICAgICAgICBkZXYtPnZvbC5taWdyX3N0YXRl ID0gTUlHUl9HRU5f
TUlHUjsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRvX3N0YXRlID0gaW1z bV9jaGVja19kZWdy
YWRlZChzdXBlciwgZGV2LCAwKTsNCi0gICAgICAgICAgICAgICAgICAgICAg IG1pZ3JhdGUoZGV2
LCB0b19zdGF0ZSwgZGV2LT52b2wubWlncl9zdGF0ZSk7DQorICAgICAgICAg ICAgICAgICAgICAg
ICBtaWdyYXRlKGRldiwgc3VwZXIsIHRvX3N0YXRlLCBkZXYtPnZvbC5taWdy X3N0YXRlKTsNCiAg
ICAgICAgICAgICAgICAgICAgICAgIG1pZ3JfbWFwID0gZ2V0X2ltc21fbWFw KGRldiwgMSk7DQoN
CiAgICAgICAgICAgICAgICAgICAgICAgIC8qIG5vdyBzd2l0Y2ggdG8gZmly c3QgbWFwIG9ubHkN
CkBAIC01NzM1LDcgKzYwMzksNyBAQCBzdGF0aWMgdm9pZCBpbXNtX3Byb2Nl c3NfdXBkYXRlKHN0
cnVjdCBzdXBlcnR5cGUgKnN0LA0KICAgICAgICAgICAgICAgICAgICAgICAg aW50IGo7DQoNCiAg
ICAgICAgICAgICAgICAgICAgICAgIGZvciAoaj0wOyBqIDwgbWFwLT5udW1f bWVtYmVycyA7aisr
KSB7DQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhkZF9pbmRl eCA9IGdldF9pbXNt
X2Rpc2tfaWR4KGRldiwgaik7DQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGhkZF9p
bmRleCA9IGdldF9pbXNtX2Rpc2tfaWR4KGRldiwgaiwgMCk7DQogICAgICAg ICAgICAgICAgICAg
ICAgICAgICAgICAgIC8qIGNoZWNrIGlmIGRpc2sgc2VyaWFsIGlzIGVxdWFs IHRvIFRBS0VPVkVS
X01JU1NJTkdfRElTSyAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiAoKGhk
ZF9pbmRleCA9PSBkbC0+aW5kZXgpICYmDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAg
IChzdHJuY21wKChjaGFyKilkbC0+ZGlzay5zZXJpYWwsDQpAQCAtNTc0NCw3 ICs2MDQ4LDcgQEAg
c3RhdGljIHZvaWQgaW1zbV9wcm9jZXNzX3VwZGF0ZShzdHJ1Y3Qgc3VwZXJ0 eXBlICpzdCwNCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkbF9taXNz aW5nID0gZGw7DQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xvdF9t aXNzaW5nID0gajsN
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNz aW5nX2luZGV4ID0g
aGRkX2luZGV4Ow0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG1pc3Np
bmdfb3JkID0gZ2V0X2ltc21fb3JkX3RibF9lbnQoZGV2LCBqKTsNCisgICAg ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtaXNzaW5nX29yZCA9IGdldF9pbXNt X29yZF90YmxfZW50
KGRldiwgaiwgMCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYnJl
YWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAg ICAgICAgICAgICAg
ICAgICAgIH0NCkBAIC01ODM1LDYgKzYxMzksMTAgQEAgc3RhdGljIHZvaWQg aW1zbV9wcm9jZXNz
X3VwZGF0ZShzdHJ1Y3Qgc3VwZXJ0eXBlICpzdCwNCiAgICAgICAgICAgICAg ICAgICAgICAgIHVu
c2lnbmVkIGxvbmcgbG9uZyBhcnJheV9ibG9ja3M7DQogICAgICAgICAgICAg ICAgICAgICAgICB1
bnNpZ25lZCBsb25nIGxvbmcgYXJyYXlfYmxvY2tzX2N1cnJlbnQ7DQogICAg ICAgICAgICAgICAg
ICAgICAgICBpbnQgdXNlZF9kaXNrcyA9IDA7DQorDQorICAgICAgICAgICAg ICAgICAgICAgICBt
YXAtPmJsb2Nrc19wZXJfc3RyaXAgPSBhLT5pbmZvLm5ld19jaHVuayA+PiA5 Ow0KKyAgICAgICAg
ICAgICAgICAgICAgICAgbWFwLT5udW1fZGF0YV9zdHJpcGVzID0gbWFwLT5i bG9ja3NfcGVyX21l
bWJlciAvIG1hcC0+YmxvY2tzX3Blcl9zdHJpcDsNCisNCiAgICAgICAgICAg ICAgICAgICAgICAg
ICAvKiBjb3VudCB1c2VkIGRpc2tzIGZvciBkYXRhICovDQogICAgICAgICAg ICAgICAgICAgICAg
ICBzd2l0Y2ggKG1hcC0+cmFpZF9sZXZlbCkgew0KICAgICAgICAgICAgICAg ICAgICAgICAgICAg
ICAgICBjYXNlIDA6DQpAQCAtNTg4Miw3ICs2MTkwLDcgQEAgdXBkYXRlX2Fk ZF9zcGFyZV9leGl0
Og0KICAgICAgICAgICAgICAgIHN0cnVjdCBkbCAqZGw7DQogICAgICAgICAg ICAgICAgdW5zaWdu
ZWQgaW50IGZvdW5kOw0KICAgICAgICAgICAgICAgIGludCBmYWlsZWQ7DQot ICAgICAgICAgICAg
ICAgaW50IHZpY3RpbSA9IGdldF9pbXNtX2Rpc2tfaWR4KGRldiwgdS0+c2xv dCk7DQorICAgICAg
ICAgICAgICAgaW50IHZpY3RpbSA9IGdldF9pbXNtX2Rpc2tfaWR4KGRldiwg dS0+c2xvdCwgLTEp
Ow0KICAgICAgICAgICAgICAgIGludCBpOw0KDQogICAgICAgICAgICAgICAg Zm9yIChkbCA9IHN1
cGVyLT5kaXNrczsgZGw7IGRsID0gZGwtPm5leHQpDQpAQCAtNTkwNSw3ICs2 MjEzLDcgQEAgdXBk
YXRlX2FkZF9zcGFyZV9leGl0Og0KICAgICAgICAgICAgICAgIGZvciAoaSA9 IDA7IGkgPCBtYXAt
Pm51bV9tZW1iZXJzOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgICAg IGlmIChpID09IHUt
PnNsb3QpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRp bnVlOw0KLSAgICAg
ICAgICAgICAgICAgICAgICAgZGlzayA9IGdldF9pbXNtX2Rpc2soc3VwZXIs IGdldF9pbXNtX2Rp
c2tfaWR4KGRldiwgaSkpOw0KKyAgICAgICAgICAgICAgICAgICAgICAgZGlz ayA9IGdldF9pbXNt
X2Rpc2soc3VwZXIsIGdldF9pbXNtX2Rpc2tfaWR4KGRldiwgaSwgLTEpKTsN CiAgICAgICAgICAg
ICAgICAgICAgICAgIGlmICghZGlzayB8fCBpc19mYWlsZWQoZGlzaykpDQog ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZhaWxlZCsrOw0KICAgICAgICAgICAgICAg IH0NCkBAIC01OTIy
LDcgKzYyMzAsNyBAQCB1cGRhdGVfYWRkX3NwYXJlX2V4aXQ6DQogICAgICAg ICAgICAgICAgLyog
bWFyayByZWJ1aWxkICovDQogICAgICAgICAgICAgICAgdG9fc3RhdGUgPSBp bXNtX2NoZWNrX2Rl
Z3JhZGVkKHN1cGVyLCBkZXYsIGZhaWxlZCk7DQogICAgICAgICAgICAgICAg bWFwLT5tYXBfc3Rh
dGUgPSBJTVNNX1RfU1RBVEVfREVHUkFERUQ7DQotICAgICAgICAgICAgICAg bWlncmF0ZShkZXYs
IHRvX3N0YXRlLCBNSUdSX1JFQlVJTEQpOw0KKyAgICAgICAgICAgICAgIG1p Z3JhdGUoZGV2LCBz
dXBlciwgdG9fc3RhdGUsIE1JR1JfUkVCVUlMRCk7DQogICAgICAgICAgICAg ICAgbWlncl9tYXAg
PSBnZXRfaW1zbV9tYXAoZGV2LCAxKTsNCiAgICAgICAgICAgICAgICBzZXRf aW1zbV9vcmRfdGJs
X2VudChtYXAsIHUtPnNsb3QsIGRsLT5pbmRleCk7DQogICAgICAgICAgICAg ICAgc2V0X2ltc21f
b3JkX3RibF9lbnQobWlncl9tYXAsIHUtPnNsb3QsIGRsLT5pbmRleCB8IElN U01fT1JEX1JFQlVJ
TEQpOw0KQEAgLTYyNjQsNyArNjU3Miw3IEBAIHN0YXRpYyB2b2lkIGltc21f ZGVsZXRlKHN0cnVj
dCBpbnRlbF9zdXBlciAqc3VwZXIsIHN0cnVjdCBkbCAqKmRscCwgaW50IGlu ZGV4KQ0KICAgICAg
ICAgICAgICAgICAgICAgICAgLyogdXBkYXRlIG9yZCBlbnRyaWVzIGJlaW5n IGNhcmVmdWwgbm90
IHRvIHByb3BhZ2F0ZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICogb3Jk LWZsYWdzIHRvIHRo
ZSBmaXJzdCBtYXANCiAgICAgICAgICAgICAgICAgICAgICAgICAqLw0KLSAg ICAgICAgICAgICAg
ICAgICAgICAgb3JkID0gZ2V0X2ltc21fb3JkX3RibF9lbnQoZGV2LCBqKTsN CisgICAgICAgICAg
ICAgICAgICAgICAgIG9yZCA9IGdldF9pbXNtX29yZF90YmxfZW50KGRldiwg aiwgLTEpOw0KDQog
ICAgICAgICAgICAgICAgICAgICAgICBpZiAob3JkX3RvX2lkeChvcmQpIDw9 IGluZGV4KQ0KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsNCg0K
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo [at] vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Maciej.Trela [ Mi, 03 März 2010 09:59 ] [ ID #2033882 ]
Linux » gmane.linux.raid » [mdadm PATCH] reshape checkpointing for IMSM metadata

Vorheriges Thema: Raid1 backup solution.
Nächstes Thema: [md PATCH] reshape checkpointing support for external IMSM metadata